Juice 完全背包 & Bone Collector 0-1背包问题

Posted proscientist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Juice 完全背包 & Bone Collector 0-1背包问题相关的知识,希望对你有一定的参考价值。

以下题目还没有找到题目描述,先附上代码。

 

//Juice完全背包,求的是最小值

要在初始化时将临时数组f赋值为最大值,并f[0]=0;这样改变下循环判断条件

最后如果不能完全匹配,也就是f[最大值]不变,便输出不可能。

 1 #include <stdio.h>
 2 #define min(a,b) a<b?a:b
 3 int T,N,E,F;
 4 int cost[10005],powderP[505],powderW[505];
 5 
 6 int main(void){
 7     freopen("input.txt", "r", stdin);
 8     setbuf(stdout, NULL);
 9     scanf("%d", &T);
10     for(int test_case = 1; test_case <= T; test_case++){
11         scanf("%d %d %d", &E, &F, &N);
12         for(int j=1;j<=F-E;j++)
13             cost[j]=0x3FFFFFFF;
14         cost[0]=0;
15         for(int i=0;i<N;i++)
16             scanf("%d %d", &powderP[i], &powderW[i]);
17         for(int i=0;i<N;i++){
18             for(int j=powderW[i];j<=F-E;j++){
19                 cost[j]=min(cost[j],cost[j-powderW[i]]+powderP[i]);
20             }
21         }
22         if(cost[F-E]==0x3FFFFFFF)
23             printf("Case #%d\nimpossible\n", test_case, cost[F-E]);
24         else
25             printf("Case #%d\n%d\n", test_case, cost[F-E]);
26     }
27     return 0;
28 }

 

//Bone_Collector 0-1背包问题

 1 #include <stdio.h>
 2 #define max(a,b) (a>b?a:b)
 3 int T,N,W,boneV[1005],boneW[1005];
 4 int data[1005];//data[V][W]
 5 
 6 int main(void){
 7     scanf("%d", &T);
 8     for(int test_case = 1; test_case <= T; test_case++){
 9         scanf("%d %d", &N, &W);
10         for(int i=1;i<=W;i++)data[i]=0;
11         for(int i=0;i<N;i++)scanf("%d", &boneW[i]);
12         for(int i=0;i<N;i++)scanf("%d", &boneV[i]);
13 
14         for(int j=0;j<N;j++){
15             for(int i=W;i>0;i--){
16                 if(i<boneV[j])break;
17                 if(data[i]<data[i-boneV[j]]+boneW[j])
18                     data[i]=data[i-boneV[j]]+boneW[j];
19             }
20         }
21         printf("#%d %d\n", test_case, data[W]);
22     }
23     return 0;
24 }

 

以上是关于Juice 完全背包 & Bone Collector 0-1背包问题的主要内容,如果未能解决你的问题,请参考以下文章

模板--完全背包HDU--2602 Bone Collector

HDU 2602 Bone Collector(01背包)

HDU 2602 Bone Collector(01背包)

HDU 2602 Bone Collector(01背包)

Bone Collector 0-1背包问题

hdu2602 Bone Collector 01背包