背包问题

来源:互联网 发布:淘宝严查刷单时间 编辑:程序博客网 时间:2024/05/17 09:04
int KnapsackProblem(int *pweight, int *pvalue, int n, int w)
{
    int *ptbl=malloc(sizeof(int)*(w+1));
    memset(ptbl, 0, sizeof(int)*(w+1));
    for(int i=0; i<n; ++i)
        for(int j=w; j>=pweight[i]; --j)
            if(ptbl[j]<pvalue[i]+ptbl[j-pweight[i]])
                ptbl[j]=pvalue[i]+ptbl[j-pweight[i]];
    w=ptbl[w];
    free(ptbl);
    return w;
}
0 0