01背包,完全背包,多重背包

01背包:一件【其实就是完全背包当K=1的情况】

完全背包:无数件

多重背包

Tips:

任意一种背包都可以用滚动数组优化

int main()
{
    //N*M
    for (int i = 1; i <= n; i++) {
        for (int j = w[i]; j <= W; j++) {
            dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i]);
        }
    }

    //利用滚动数组,空间为2m
    int cur = 1;
    for (int i = 1; i <= n; i++) {
        for (int j = w[i]; j <= W; j++) {
            dp[cur][j] = max(dp[cur^1][j], dp[cur^1][j - w[i]] + v[i]);
        }
        cur ^= 1;
    }

    return 0;
}

 

全部评论

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务