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;
}

 

全部评论

相关推荐

头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务