dp
2026-09-06 17:02:54
发布于:广东
4阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
首先定义dp(我用的是一维数组)w与v
int dp[1005],w[1005],v[1005];
输入
int n;
cin>>n;
int m;
cin>>m;
for(int i=1;i<=n;i++){
cin>>v[i];
}
for(int i=1;i<=n;i++){
cin>>w[i];
}
dp公式
不能选dp[j]
dp[j]{
能选max(dp[j],dp[j-w[i]]+v[i]);
for(int i=1;i<=n;i++){
for(int j=m;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
输出
cout<<dp[m];
收尾
return 0;
}
这里空空如也







有帮助,赞一个