动态规划【背包问题】

这篇博客介绍了如何使用动态规划解决不同类型的背包问题,包括普通背包、无限背包和多重背包。在普通背包中,采用逆序寻找策略;无限背包则正序处理;多重背包根据物品使用限制选择逆序或正序。通过比较每个物品的价值和重量,确定最大价值组合。
摘要由CSDN通过智能技术生成

一、题目描述:

你爬山途中发现了一些值钱的钻石,并且每个钻石都有对应的重量和价值。你想在你的背包能放下的前提下,尽可能多的去拿最值钱的钻石。

二、具体分类(只列举三种):

  1. 普通背包:每个物品至多放一个。
  2. 无限背包:每个物品可以有无数个。
  3. 多重背包:有的物品只能放一个,有的物品可以放多个

 三、具体过程

给定物品数量n背包容量m,n行数据,每行2个值(重量,价值)。

int n,m;
    cin>>n>>m;
    int dp[n][2];//int dp[n][3];
int sum[m+1];//sum是背包 表示容量分别为1~m。
    for(int i=0;i<n;i++){
        cin>>dp[i][0]>>dp[i][1];
}//输入
    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值