完全背包。
模版。
物品的价值等价于体积。
1 #include <stdio.h> 2 #include <string.h> 3 using namespace std; 4 5 int main() 6 { 7 int t,n,i; 8 bool dp[20010]; 9 int w[3]={150,200,350}; 10 11 while(scanf("%d",&t)!=EOF) 12 { 13 while(t--) 14 { 15 scanf("%d",&n); 16 memset(dp,false,sizeof(dp)); 17 dp[0]=true; 18 for(i=0;i<3;++i) 19 { 20 for(int j=w[i];j<=n;++j) 21 { 22 if(dp[j-w[i]]) 23 { 24 dp[j]=true; 25 } 26 } 27 } 28 for(i=n;i>-1;--i) 29 { 30 if(dp[i]) 31 { 32 break; 33 } 34 } 35 printf("%d\n",n-i); 36 } 37 } 38 }