hdu 2602
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2602
题意:背包问题。
mark:第一次背包~
代码:
#include <stdio.h> #include <string.h> int v[1010],c[1010]; int dp[1010]; int max(int a, int b) {return a > b ? a : b;} int main() { int t,m,n; int i,j; scanf("%d", &t); while(t-- && scanf("%d%d", &m, &n)) { memset(dp, 0, sizeof(dp)); for(i = 0; i < m; i++) scanf("%d", v+i); for(i = 0; i < m; i++) scanf("%d", c+i); for(i = 0; i < m; i++) for(j = n; j >= 0; j--) if(j >= c[i]) dp[j] = max(dp[j], dp[j-c[i]]+v[i]); printf("%d\n", dp[n]); } return 0; }