...
2023-08-18 18:22:19
发布于:广东
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int p[1005];//price
int w[1005];//time
int dp[1005][1005];
int main(){
int n , m;
cin >> n >> m;
for(int i = 1;i <= m;i++){
cin >> w[i];//time
cin >> p[i];//price
}
for(int i = 1;i <= m;i++){//枚举pill数
for(int j = 1;j <= n;j++){//枚举time
//dp方程转移式
if(w[i] <= j) dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+p[i]);
else dp[i][j] = dp[i-1][j];
}
}
cout<<dp[m][n];
return 0;
}
这里空空如也
有帮助,赞一个