点击打开链接
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cstring>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include <limits.h>
#include <assert.h>
#include<queue>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
int F[12885];
int main()
{
int i=0,j=0,N=0,M=0,w_i=0,D_i=0;
scanf("%d %d",&N,&M);
memset(F, 0, sizeof(F));
for(i=1;i<=N;i++){
scanf("%d %d",&w_i, &D_i);
for(j=M;j>=0;j--){
if(j>=w_i){
F[j]=max(F[j-w_i]+D_i, F[j]);//等价于max(F[i-1][j],F[i-1][j-V]+W[i])
}
}
}
printf("%d\n",F[M]);
return 0;
}