模板题解
化简方式类似于01背包化简方式
#include <iostream>
#include <algorithm>
#include <cstring>
#include <math.h>
using namespace std;
int main(){
int N=0, V=0, v[1005], w[1005];
int dp[1005];
cin >> N >> V;
memset(dp, 0,sizeof(dp));
for(int i=1; i<=N; ++i){
cin >> v[i] >> w[i];
}
for(int i=1; i<=N; ++i){
for(int j=v[i]; j<=V; ++j){
dp[j]=max(dp[j], dp[j-v[i]]+w[i]);
}
}
cout << dp[V] << endl;
return 0;
}