NC16693解题步骤基本一致
#include "iostream"
using namespace std;
int V[101];
int W[101];
int dp[101][1001];
int main()
{
int T,n,i,x;
cin>>T>>n;
for(i=1;i<=n;i++){
cin>>V[i]>>W[i];
}
dp[0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<=T;j++){
if(V[i] > j){
dp[i][j]=dp[i-1][j];
}else{
dp[i][j]=max(dp[i-1][j],dp[i-1][j-V[i]]+W[i]);
}
}
}
cout<<dp[n][T];
}