0-1背包问题

链接:http://blog.csdn.net/chenxun_2010/article/details/42045065

链接:http://www.cnblogs.com/shinning/p/6027743.html

 

/*
dp[i][j] 背包总重j时,前i个物品的最大价值

*/
int pakc_0_1(std::vector<int> w, std::vector<int> v, int W){
    int num = w.size();
    std::vector<std::vector<int>> dp(num + 1, W + 1);
    for(int i = 0; i <= num; i++){
        dp[i][0] = 0;
    }

    for(int i = 1; i < num; i++){
        for(int j = 1; j <= W; j ++){
            if(j >= w[i]){
                dp[i][j] = max(dp[i][j - w[i]] + v[i], dp[i - 1][j]);
            }else{
                dp[i][j] = dp[i -1 ][j];
            }
        }
    }

}

posted on 2017-10-17 21:38  Shihu  阅读(129)  评论(0编辑  收藏  举报

导航