美文网首页动态规划专题
背包问题求具体方案

背包问题求具体方案

作者: Tsukinousag | 来源:发表于2021-03-18 19:53 被阅读0次

原题链接

#include <iostream>
#include <algorithm>

using namespace std;

const int N=1010;

int v[N],w[N];
int n,m;
int dp[N][N];

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>v[i]>>w[i];
    //从后往前从n号背包转移到1号背包,得到当前最大的背包的体积dp[1][m]
    for(int i=n;i>=1;i--)
    {
        for(int j=0;j<=m;j++)
        {
            //默认不选
            dp[i][j]=dp[i+1][j];
            //当体积大于v[i]时,要选
            if(j>=v[i])
                dp[i][j]=max(dp[i+1][j],dp[i+1][j-v[i]]+w[i]);
        }
    }
    //再从dp[1][v]往前往后找,是由哪个背包转移过来的
    int vol=m;
    for(int i=1;i<=n;i++)
    {
        if(dp[i][vol]==dp[i+1][vol-v[i]]+w[i] && v[i]<=vol)
        {
            cout<<i<<" ";
            vol-=v[i];
        }
    }
    
    return 0;
}

相关文章

  • 背包问题求具体方案

    原题链接[https://www.acwing.com/problem/content/12/]

  • 背包问题求方案数

    原题链接[https://www.acwing.com/problem/content/11/]

  • 第24章 背包问题进阶

    1、整数划分 算法1 完全背包求方案数问题 时间复杂度 Java 代码 算法2 时间复杂度 Java 代码 2、猫...

  • 焦虑问题,具体方案

    一直以来困扰我的就是孩子在面临在校纪律以及写作业的问题,他上课小动作特别多,老师要在课堂上反复多次提醒 ,甚至到现...

  • 《背包九讲》笔记

    背包问题 题意:给出背包的容量,以及一批物品的价值和大小,求最大价值。 01背包问题 题意 每个物品只能放入一次。...

  • 彻底理解0-1背包问题

    0-1背包问题概念 背包问题本质是个求最优解的问题:有个背包有V大小的空间可以存放物品,现在有n个物品,每个物品体...

  • 背包问题1(01背包)

    N件物品,没见有重量Wi,价值Vi;选其中几件放入容量为M的背包中,求价值的最值。——经典背包问题背包问题分三类:...

  • week 16

    动态规划和背包问题理解 背包问题的理解 背包问题:物品有两个属性:重量和价值,即一个是增益,一个是获取限制,求利益...

  • [转]背包问题九讲v1.0(P09: 背包问题问法的变化)

    以上涉及的各种背包问题都是要求在背包容量(费用)的限制下求可以取到的最大价值,但背包问题还有很多种灵活的问法,在这...

  • 回溯算法经典问题及python代码实现

    1. 八皇后 2. 0-1背包问题 如果我想打印出具体的方案,应该怎么修改呢 如果每个物品不仅重量不同,价值也不同...

网友评论

    本文标题:背包问题求具体方案

    本文链接:https://www.haomeiwen.com/subject/ydmpcltx.html