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-12 13:42
江南大学 C++
点赞 评论 收藏
分享
那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务