题解(简单版)
2024-01-13 15:57:24
发布于:广东
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,m;
int w[1003],c[1003],dp[1003][1003];
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>c[i]>>w[i];
}
for(int i=1;i<=m;i++){
for(int j=0;j<=t;j++){
if(j<c[i]){
dp[i][j]=dp[i-1][j];//确定当前状态
}else{
dp[i][j]=max(dp[i-1][j-c[i]]+w[i],dp[i-1][j]);//动态规划方程式
}
}
}
cout<<dp[m][t];
return 0;
}
这里空空如也
有帮助,赞一个