题目描述

01背包问题
#include<iostream>
using namespace std;
int w[3500],val[3500];
int dp[13000];
int main(){
int t,m;
cin>>t>>m;
for(int i=1;i<=t;i++)
cin>>w[i]>>val[i];
for(int i=1;i<=t;i++)
for(int j=m;j>=0;j--)
if(j>=w[i])
dp[j]=max(dp[j-w[i]]+val[i],dp[j]);
cout<<dp[m]<<endl;
return 0;
}