01背包问题
#include<bits/stdc++.h>
using namespace std;
int w[1005],va[1005],dp[1005];//重量和价值dp遍历数组
int main() {
int n,v;
cin>>n>>v;
for(int i=1;i<=n;i++){
cin>>w[i]>>va[i];
}
for(int i=1;i<=n;i++){
for(int j=v;j>=w[i];j--){//每次的值只与上次有关
dp[j]=max(dp[j],dp[j-w[i]]+va[i]); //一维滚动数组优化
}
}
cout<<dp[v];
return 0;
}