hdoj 2602 (01背包问题)
裸的背包
1 #include <stdio.h> 2 #include <string.h> 3 4 struct t 5 { 6 int w; 7 int v; 8 }; 9 10 int r[1002]; 11 t a[1002]; 12 13 int main() 14 { 15 int n; 16 scanf("%d", &n); 17 while (n--) 18 { 19 memset(r, 0, sizeof(r)); //数组清零不能忘记! 20 int N, V, i, j; 21 scanf("%d %d", &N, &V); 22 23 for (i = 0; i < N; i++) 24 scanf("%d", &a[i].v); 25 for (i = 0; i < N; i++) 26 scanf("%d", &a[i].w); 27 28 for (i = 0 ; i < N; i++) 29 { 30 for (j = V; j >= a[i].w; j--) 31 { 32 if (r[j] < r[j - a[i].w] + a[i].v) 33 r[j] = r[j - a[i].w] + a[i].v; 34 } 35 } 36 37 printf("%d\n", r[V]); 38 } 39 return 0; 40 }
浙公网安备 33010602011771号