题意:如题
链接:
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1085
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
using namespace std;
int dp[110][10010];
int wi[10010],pi[10010];
int n,w;
int main()
{
while(cin >> n >> w)
{
for(int i=1; i<=n; i++)
scanf("%d%d",&wi[i],&pi[i]);
for(int i=1; i<=n; i++)
{
for(int j=0; j<=w; j++)
{
if(j < wi[i])
dp[i][j] = dp[i-1][j];
else
dp[i][j] = max(dp[i-1][j], dp[i-1][j-wi[i]] + pi[i]);
}
}
cout << dp[n][w] << endl;
}
return 0;
}