码迷,mamicode.com
首页 > 其他好文 > 详细

完全背包练习

时间:2014-12-20 18:04:05      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

呵呵,只是练习而已,表说伦家的代码丑哦。。。>.<#

完全背包代码:

#include<stdio.h>
struct item//储存物品信息
{
    int value,weigh;//价值和重量
};
int main()
{
    int item_all,W_max;//item_all表示物体总数  W_max表示背包容量
    struct item G[100];
    printf("物品总数  最大质量\n");
    scanf("%d%d",&item_all,&W_max);
    int i;
    printf("G[i].value  G[i].weigh\n");
    for(i=1;i<=item_all;i++)
        scanf("%d%d",&G[i].value,&G[i].weigh);
    int F[100]={0};//记录过程中的最大
    int v;
    for(i=1;i<=item_all;i++){//分别表示i个物品放或者不放入背包
        for(v=G[i].weigh;v<=W_max;v++){//分别表示最大容量为v的背包
            //F[v]=max{F[v],F[v-G[i].weigh]-G[i].value}
            int temp=F[v-G[i].weigh]+G[i].value;
            if(temp>F[v])
                F[v]=temp;
        }
        int x;
        for(x=0;x<=W_max;x++)
                printf("F[%d]=%d ",x,F[x]);
            printf("\n");
        }
        printf("F[W_max}=%d\n",F[W_max]);
    return 0;
}

 

测试结果:

技术分享

 

完全背包练习

标签:

原文地址:http://www.cnblogs.com/yanglingwell/p/4175597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!