『题解』A85.采药
2025-06-07 23:13:59
发布于:湖南
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define r return
#define ew 5005
#define sz 10000005
const int MOD=1e9+7;
int a[ew],b[ew];
int dp[ew][ew];
signed main(){
int t,m;
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=m;i++){
for(int j=t;j>=0;j--){
if(j>=a[i]){
dp[i][j]=max(dp[i-1][j-a[i]]+b[i],dp[i-1][j]);
}
else{
dp[i][j]=dp[i-1][j];
}
}
}
cout<<dp[m][t];
r 0;
}
这里空空如也
有帮助,赞一个