洛谷 P1049 装箱问题(01背包)

一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了。


题目链接

https://www.luogu.org/problemnew/show/P1049

解题思路

  一道裸的01背包,注意价值和重量是一个东西,且最后输出剩余的体积。

  随随便便二维就AC了,懒得写一维。

AC代码

 1 #include
 2 #include
 3 #include
 4 #include
 5 #include
 6 #include
 7 #include
 8 #include<set>
 9 #include
10 #include
11 #include
12 #include
13 #include
14 using namespace std;
15 int n,v,w[35],dp[35][20005];
16 int main()
17 {
18     //freopen("","r",stdin);
19     //freopen("","w",stdout);
20     cin>>v>>n;
21     for(int i=1;i<=n;i++){
22         cin>>w[i];
23     }
24     for(int i=1;i<=n;i++){
25         for(int j=1;j<=v;j++){
26             if(j1][j];
27             else dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+w[i]);
28         }
29     }
30     cout<dp[n][v];
31     //fclose(stdin);
32     //fclose(stdout);
33     return 0;
34 }

//NOIP2001普及组t4

你可能感兴趣的:(洛谷 P1049 装箱问题(01背包))