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 }

posted on 2012-08-09 10:10  Xor<>OR  阅读(146)  评论(0)    收藏  举报

导航