特别感谢AC助手送来的递推公式
2026-08-11 21:20:02
发布于:浙江
12阅读
0回复
0点赞
#事先声明:只有递推公式是AC助手的,其他均为原创。
这题很明显是一个0—1背包,循环和地推公式写出来就基本完事了,内层循环一定要倒序,不然亲测会变成完全背包。
聊天链接1
聊天链接2
AC代码:
#include <bits/stdc++.h>
using namespace std;
int dp[100010];
int w[110],v[110];
int main(){
int n,W;
cin>>n>>W;
for(int i=1;i<=n;i++){
cin>>w[i]>>v[i];
}
for(int i=1;i<=n;i++){
for(int j=W;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
cout<<dp[W];
return 0;
}
最后,祝大家早日加入ntms!
这里空空如也







有帮助,赞一个