##完全背包问题
例题
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
struct node{
int v,w;
}a[N];
int dp[N] = {0};
int main()
{
int n,m;
cin >> n >> m;
for (int i = 0; i < n; i ++ ) cin >> a[i].v >> a[i].w;
for (int i = 0; i < n; i ++ )
{
for (int j = a[i].v; j <= m; j ++ )
dp[j] = max( dp[j] , dp[j - a[i].v] + a[i].w);
}
cout << dp[m] << endl;
return 0;
}