#include <stdio.h>#include <string.h>#include <vector>#include <queue>#include <algorithm>using namespace STD;intMain () {int_,i,j,m,n,k,a[1024x768],b[1024x768],w[1024x768],dp[2048];scanf("%d\n", &_); while(_--) {scanf("%d%d", &m,&n); for(i=0; i<n;i++)scanf("%d%d%d", &w[i],&a[i],&b[i]);memset(DP,0,sizeof(DP)); for(i=0; i<n;i++) { for(j=m;j>=w[i];j--) Dp[j]=max (Dp[j],dp[j-w[i]]+a[i]+b[i]); for(j=w[i];j<=m;j++) Dp[j]=max (Dp[j],dp[j-w[i]]+a[i]); }printf("%d\n", Dp[m]); }return 0;}
For the first time, all 01 backpacks do unlimited timeouts.
#include <stdio.h>#include <string.h>#include <vector>#include <queue>#include <algorithm>using namespace STD;intMain () {int_,i,j,m,n,k,a[1024x768],b[1024x768],w[1024x768],dp[2048];scanf("%d\n", &_); while(_--) {scanf("%d%d", &m,&n); for(i=0; i<n;i++)scanf("%d%d%d", &w[i],&a[i],&b[i]);memset(DP,0,sizeof(DP)); for(i=0; i<n;i++) {k=m/w[i]; while(k!=0) { for(j=m;j>k*w[i];j--) Dp[j]=max (Dp[j],dp[j-k*w[i]]+k*a[i]+b[i]); k--; } }printf("%d\n", Dp[m]); }return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced. http://xiang578.top/
Hdu 5410 CRB and his Birthday 01 backpack and full backpack