dp,最基础的01背包
Memory 184K
Time 157MS
#include <stdio.h>
#include <string.h>
int dp[12900];
int main (void)
{
int n, m, i, j, w, v;
while(scanf("%d %d",&n, &m)==2){
memset(dp,0,sizeof(dp));
for(i = 1; i<=n; i++){
scanf("%d %d",&w,&v);
for(j=m; j>=w; j--)
if(dp[j] < dp[j-w]+v)
dp[j] = dp[j-w]+v;
}
printf("%d\n",dp[m]);
}
return (0);
}