背包问题

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         for(int j=w; j>=pweight[i]; --j)
            if(ptbl[j]                 ptbl[j]=pvalue[i]+ptbl[j-pweight[i]];
    w=ptbl[w];
    free(ptbl);
    return w;
}

你可能感兴趣的:(背包问题)