P2639 [USACO09OCT]Bessie的体重问题Bessie's Weight

题目传送门

这题和01背包最大的区别在于它没有价值,所以我们可以人工给它赋一个价值,由于要求体积最大,把价值赋成体积即可。顺带一提,这题数据范围很大,二维会MLE,要压缩成一维才可以AC

下面给出参考程序:

 

 1 #include<iostream>
 2 using namespace std;
 3 int n,m,f[100001],v[100001],w[100001];
 4 int main()
 5 {
 6     cin>>n>>m;
 7     for(int i=1;i<=m;i++)
 8     {
 9         cin>>v[i];
10         w[i]=v[i];
11     }
12     for(int i=1;i<=m;i++)
13     {
14         for(int j=n;j>=v[i];j--)
15         {
16             f[j]=max(f[j],f[j-v[i]]+w[i]);
17         }
18     }
19     cout<<f[n];
20     return 0;
21 }
View Code

 

 

 

  

posted @ 2019-06-12 19:57  shao0320  阅读(249)  评论(0编辑  收藏  举报
****************************************** 页脚Html代码 ******************************************