HLG 1333 GG的关心 01背包

来源:互联网 发布:不要网络的钢琴游戏 编辑:程序博客网 时间:2024/05/03 16:11
GG的关心Time Limit: 1000 MSMemory Limit: 65536 KTotal Submit: 123(36 users)Total Accepted: 37(25 users)Rating: Special Judge: NoDescription

电脑买回来后,MM一直用它专心的搞ACM,看着MM专注的样子,GG也是非常开心,但害怕MM劳累过度影响身体,于是GG经常到超市给MM买一些营养品来补充身体能量。GG到超市购物从来都是刷卡的,可是这种卡很诡异,当用它在超市购物的时候,刷卡机会先判断卡上的余额是否低于5元钱。如果低于5元钱则无法购买任何物品,即使那件物品的金额是小于5的也不可以。而如果卡上的金额大于等于5元则可以进行交易,即使交易成功后卡中余额为负数也是可以的。

现在超市有n种物品,每种物品最多只能买一个。已知每种物品的价格和卡上的余额。问最少可使卡上的余额为多少。

Input

输入包含多组数据。对于每一组数据:

第一行有两个正整数nm,分别代表物品的种类数,以及卡中的余额。

第二行包含n个正整数p1,p2,p3…pn,分别代表每一种物品的价格。

n0时表示输入结束

范围:

m, n <= 1000

pi <= 50 (1 <= i <= n)

Output

对于每组输入,输出一个整数并换行,代表卡上可能的最小余额。

Sample Input
1 55010 501 2 3 2 1 1 2 3 2 10
Sample Output
-4532
Hint买东西是一件一件买。Source

2012 Spring Contest 5 - Binary Search, Greedy, DP

普通的01背包 每次先拿五块出来把最大价值的买了就好 ////一个变量没初始化 debug了半天  蒟蒻蒟蒻

ACcode:

#pragma warning(disable:4786)//使命名长度不受限制#pragma comment(linker, "/STACK:102400000,102400000")//手工开栈#include <map>#include <set>#include <queue>#include <cmath>#include <stack>#include <cctype>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define rd(x) scanf("%d",&x)#define rd2(x,y) scanf("%d%d",&x,&y)#define rds(x) scanf("%s",x)#define rdc(x) scanf("%c",&x)#define ll long long int#define maxn 1000005#define mod 1000000007#define INF 0x3f3f3f3f //int 最大值#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;++i)#define MT(x,i) memset(x,i,sizeof(x))#define PI  acos(-1.0)#define E  exp(1)using namespace std;int a[maxn],dp[maxn],n,money,maxx;int main(){    while(rd(n)&&n){        rd(money);        FOR(i,1,n)rd(a[i]);        if(money<5){            printf("%d\n",money);            continue;        }        maxx=0;///忘记初始化        sort(a+1,a+1+n);        maxx=a[n];n--;        money-=5;        maxx=5-maxx;        MT(dp,0);        FOR(i,1,n)            for(int j=money;j>=a[i];j--)                dp[j]=max(dp[j],dp[j-a[i]]+a[i]);        printf("%d\n",money-dp[money]+maxx);    }    return 0;}/*3114 3 43114 3 451 55010 501 2 3 2 1 1 2 3 2 10*/


0 0
原创粉丝点击