记录编号 192216 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010冲刺二]宝物筛选 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.125 s
提交时间 2015-10-10 06:26:59 内存使用 11.73 MiB
显示代码纯文本
#include<cstdio>

using namespace std;
int n,m,v[1000005],w[1000005],f[1000005];
int vi,wi,t,ne,num;
int main(){
    freopen("treasure.in","r",stdin);
	freopen("treasure.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i){
		t=1;
		scanf("%d%d%d",&vi,&wi,&num);
		while(num>=t){
			v[++ne]=vi*t; w[ne]=wi*t;
			num-=t; t*=2;
		}
		v[++ne]=num*vi; w[ne]=num*wi;
	}
	for(int i=1;i<=ne;++i)
	 for(int j=m;j>=w[i];--j)
	  if(f[j]<f[j-w[i]]+v[i]) f[j]=f[j-w[i]]+v[i];
	printf("%d",f[m]);
	getchar();getchar();
}