题目

有 N 种物品和一个容量是 V 的背包。

第 ii 种物品最多有 si 件,每件体积是 vi,价值是 wi。

求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。
输出最大价值。

输入格式

第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。

接下来有 N 行,每行三个整数 vi,wi,si 用空格隔开,分别表示第 ii 种物品的体积、价值和数量。

输出格式

输出一个整数,表示最大价值。

数据范围

0<N≤1000
0<V≤2000
0<vi,wi,si≤2000

提示:

本题考查多重背包的二进制优化方法。

输入样例

4 5
1 2 3
2 4 1
3 4 3
4 5 2

输出样例:

10

代码

#include<iostream>
#include<vector>using namespace std;const int N = 2010;
int f[N];struct Good
{int v, w;
};int main()
{int n, m;cin >> n >> m;vector<Good> goods;for(int i = 1; i <= n; i ++){int v, w, s;cin >> v >> w >> s;//打包 二进制优化 for(int k = 1; k <= s; k *= 2){s -= k;goods.push_back({v * k, w * k});}if(s) goods.push_back({v * s, w * s});}for(auto good : goods)for(int j = m; j >= good.v; j --)f[j] = max(f[j], f[j - good.v] + good.w);cout << f[m];return 0;
}

多重背包问题2(DP)相关推荐

  1. poj 1384 Piggy-Bank 多重背包问题

    题目:点击打开链接 题意:小猪存钱罐,知道一些钱币的总重量,和这些钱币的币值以及单个重量,问这些钱最少是多少? 分析:很明显的一道多重背包问题,dp[v],表示重量为i的钱的币值和,对于达不到给定那个 ...

  2. ACwing 5. 多重背包问题 II(二进制拆分+DP)

    文章目录 1. 题目 2. 解题 1. 题目 有 N 种物品和一个容量是 V 的背包. 第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi. 求解将哪些物品装入背包,可使物品体积总和不超过 ...

  3. P03: 多重背包问题

    P03: 多重背包问题 题目 有N种物品和一个容量为V的背包.第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和 ...

  4. 多维多重背包问题_满满干货!背包问题全总结(带c++源码)

    目录: 动态规划简介 0-1 背包问题 完全背包问题 多重背包问题 混合背包问题 二维(多维)费用背包问题 分组的背包问题 有依赖的背包问题 动态规划简介 在学习背包问题之前需要对动态规划有一定的了解 ...

  5. 01背包问题+完全背包问题+多重背包问题

    一 01背包问题 1.1题目 有N件物品和一个容量为V 的背包.放入第i件物品耗费的空间是Ci,得到 的价值是Wi. 求解将哪些物品装入背包可使价值总和最大. 1.2 基本思路 这是最基础的背包问题, ...

  6. 多重背包问题以及二进制优化

    2020.12.30开始学习AcWing算法<算法竞赛进阶指南>: 上传博客方便复习. 多重背包问题(N<= 100): //Wecccccccc //2020.12.31 #inc ...

  7. 01背包、完全背包、多重背包问题的C++实现及路径记录

    这里主要实现路径记录,只求最值问题移步 01背包.完全背包.多重背包问题的C++实现 以下均打印输出路径,即装入背包的物品序号,和最大值. 01背包问题 #include <iostream&g ...

  8. 01背包、完全背包、多重背包问题的C++实现

    01背包问题 容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5. 设计算法,实现背包内物品价值最大. 代码如下(输出14) #includ ...

  9. 中医药暑假训练赛三 c题 题解 (多重背包问题)

    原题: Description 主角kirito是使用世界首款完全潜行游戏"刀剑神域(Sword Art Online)"的玩家.曾经很幸运的参与过封闭测试,并买下正式版的kiri ...

  10. ZCMU 1919 :kirito's 星爆气流斩 (多重背包问题)

    1919: kirito's 星爆气流斩 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 155  Solved: 41 Description 主角k ...

最新文章

  1. 【数学基础】校招算法工程师笔试题
  2. 网络服务-RSYNC
  3. Cookie和Session-学习笔记02【Cookie案例、JSP改造Cookie案例】
  4. go中有缓存通道和无缓存通道区别
  5. UVA 839 Not so Mobile
  6. 【渝粤教育】电大中专混凝土结构作业 题库
  7. 创意产品 分析_使用联合分析来发展创意
  8. Leetcode--145. 二叉树的后序遍历(迭代递归)
  9. 安装nginx时关系依赖库openssl.lib时,出现:error: 'NR_syscalls' undeclared (first use in this function)
  10. 【华为云技术分享】Reactive模式优势与实践
  11. linux chmod命令数字,菜鸟学Linux命令:chmod命令和数字文件权限
  12. Debian 8 时间同步
  13. IOS之Objective-C学习 工厂模式
  14. 2.对memcached进行curd操作
  15. 微信小程序获取二维码scene参数报错 41030:invalid page rid: xx-xx-xx
  16. 计算机组成原理课程设计:复杂模型机
  17. imx8开发之~源码编译
  18. c++整人小程序(附源码)
  19. c# 火狐浏览器怎么嵌入窗体中_.net winform程序下使用firefox作为Web浏览器
  20. 计算机怎么看显卡内存容量,显存容量是什么,详细教您查看显卡容量大小方法...

热门文章

  1. 数据库并发机制和事务的隔离级别详解
  2. SAP BAPI 创建批次 未保存内部对象号
  3. 如果x≥0,则,否则。编写程序,输入一个整数x,计算后输出对应的y值。
  4. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)
  5. (数据结构)[python](10)----链表
  6. ClickHouse 在日志存储与分析方面作为 ElasticSearch 和 MySQL 的替代方案
  7. centos7开放mysql端口
  8. 基于Java语言的学习路线
  9. 操作系统FIFO算法(先进先出算法)
  10. 2022年中,用Python赚钱的5个方法,教你业余时间赚外快