背包问题
2023-03-20 19:39:30
发布于:北京
29阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int dp[101][1010],b[110],f[110];
int a,m;
int main(){
cin>>a>>m;
for(int i=1;i<=m;i++){
cin>>b[i]>>f[i];
}
for(int i=1;i<=m;i++){
for(int j=0;j<=a;j++){
if(j<b[i]){
dp[i][j]=dp[i-1][j];
}
else{
dp[i][j]=max(dp[i-1][j-b[i]]+f[i],dp[i-1][j]);
}
}
}
cout<<dp[m][a];
return 0;
}
全部评论 1
牛
2023-07-23 来自 广东
0
有帮助,赞一个