1 条题解
-
0
这其实就是一道普通的01背包问题。
但是会有一个问题:
干草没有自己的价值。
那么怎么办呢?
以体积作为每一捆干草的价值。
好了,那么问题迎刃而解。
下面是完整代码。
#include<bits/stdc++.h>
using namespace std;
int h,n;
int s[100001],dp[100001];
int main(){
cin>>h>>n; for(int i=1;i<=n;i++){ cin>>s[i]; } for(int i=1;i<=n;i++){ for(int j=h;j>=1;j--){ if(j>=s[i]){ dp[j]=max(dp[j],dp[j-s[i]]+s[i]); } } } cout<<dp[h]; return 0;
}
- 1
信息
- ID
- 1586
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者