Sicily 1782. Knapsack
【题意】
最简单直接的0-1背包问题,输入数据个数n,背包容量m,接下来n个数据表示各个具体值,求不超过背包容量能装的最大数量。从此知道有种题叫做动态规划。
1 #include<cstdio> 2 #include<memory.h> 3 #include<algorithm> 4 using namespace std; 5 int main() 6 { 7 int testcase; 8 scanf("%d",&testcase); 9 while(testcase--) 10 { 11 int n,m; 12 scanf("%d%d",&n,&m); 13 int c[n+1],f[m+1]; 14 memset(f,0,sizeof(f)); 15 for(int y=1; y<=n; y++) 16 { 17 scanf("%d",&c[y]); 18 } 19 for(int i=1; i<=n; i++) 20 for(int j=m; j>=c[i]; j--) 21 f[j]=max(f[j],f[j-c[i]]+c[i]); 22 printf("%d\n",f[m]); 23 } 24 }