HDOJ 1248

完全背包。

模版。

物品的价值等价于体积。

 

 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 }

 

posted @ 2013-12-25 12:21  forkbomb  阅读(108)  评论(0)    收藏  举报