关于0-1背包问题,请高手帮忙解释下两个语句

[复制链接]
查看11 | 回复1 | 2011-8-12 16:37:19 | 显示全部楼层 |阅读模式
#include
#define MAXSIZE 10000
int n,maxw;
int b[MAXSIZE],w[MAXSIZE];
int value[MAXSIZE];
void Knapsack(int maxw)
{
        int i,k;
        for(i=0;i=w[k];i--)//这个for循环是要干嘛的
                {
                        if(value[i-w[k]]+b[k]>value)
                                value=value[i-w[k]]+b[k];
                }
        }
        printf("%d",value[maxw]);
}       
int main()
{
        int i;
        printf("输入物品的总数n=");
        scanf("%d",&n);
        printf("输入正的最大总权值maxw=");
        scanf("%d",&maxw);
        for(i=1;i<=n;i++)
        {
                printf("输入物品%d的正效用b和权值w",i);
                scanf("%d%d",&b,&w);
        }
        Knapsack(maxw);
        return 0;
}
这个是用动态规划写的,大虾们帮忙看下,谢谢
大虾们,帮忙解释下啊 ,刚赚 到分好的话再 追加!!!

回复

使用道具 举报

千问 | 2011-8-12 16:37:19 | 显示全部楼层
知道冒泡排序吧,从小到大排,从大到小排,跟那个差不多...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行