#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> using namespace std; int c[3500],w[3500],n,m,dp[13000]; int main() { int i,j; while(scanf("%d %d",&n,&m)!=EOF) { for(i=0;i<n;i++) { scanf("%d %d",&c[i],&w[i]); } memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) for(j=m;j>=c[i];j--) dp[j]=max(dp[j-c[i]]+w[i],dp[j]); printf("%d\n",dp[m]); } return 0; }
本文出自 “Qero” 博客,请务必保留此出处http://8590696.blog.51cto.com/8580696/1358907
原文:http://8590696.blog.51cto.com/8580696/1358907