题目:小明的背包2(蓝桥OJ 1175)

该篇文章介绍了如何使用C++实现一个优化的完全背包问题解题思路,利用动态规划从体积小到大进行状态转移,求解背包容量最大时能装入的价值。
摘要由CSDN通过智能技术生成

问题描述:


解题思路:

        本题是完全背包模板题,与优化01背包的不同处在于状态是由小到大转移。


代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 9;

int dp[N];  // N表示体积

int main()
{
  int n, m;cin >> n >> m;

  for(int i = 1; i <= n; i++){
    int w, v;cin >> w >> v;

    for(int j = w; j <= m; j++){  // 由小到大,优化的完全背包问题
      dp[j] = max(dp[j], dp[j - w] + v);
    }

  }

  cout << dp[m] << '\n';
  return 0;
}

知识点:完全背包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值