输入
1000 5
800 2
400 5
300 5
400 3
200 2
输出
3900
备注:
N < 30000,m < 25,v ≤ 10000, 1 ≤ p ≤ 5
#include<bits/stdc++.h>
using namespace std;
const int N=3e4+5;
int n,m,dp[N],v[N],w[N];
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++) cin>>v[i]>>w[i];
for(int i=1;i<=n;i++){
for(int j=m;j>=v[i];j--){
dp[j]=max(dp[j],dp[j-v[i]]+v[i]*w[i]);
}
}
cout<<dp[m];
return 0;
}