0-1背包最基本的入门题,做得特别开心
#include<stdio.h>
#include<string.h>
int max( int a, int b){
return a > b? a : b;
}
int main(void){
int i, j;
int desire, weight;
int dp[100005];
int n, m;
memset( dp, 0, sizeof(dp));
scanf("%d%d", &n, &m);
for( i = 1; i <= n; i++){
scanf("%d%d", &weight, &desire);
for( j = m; j >= weight; j--){
dp[j] = max( dp[j], dp[j-weight] + desire);
}
}
printf("%d\n", dp[m]);
return 0;
}