背包九讲之四(混合三种背包问题)
1 /* 2 将01背包,完全背包,和多重完全背包问题结合起来,那么就是混合三种背的问题 3 根据三种背包的思想,那么可以得到 4 混合三种背包的问题可以这样子求解 5 for(int i=1; i<=N; ++i) 6 if(第i件物品是01背包) 7 zeroOnePack(c[i],w[i]); 8 else if(第i件物品是完全背包) 9 completePack(c[i],w[i]); 10 else if(第i件物品是多重完全背包) 11 multiplePack(c[i],w[i],n[i]); 12 13 这样能得到最优解的原因是,因为前一层已经是得到最优解了, 14 当前层求解最优解的时候,我们考虑要使用三种背包中的哪一种方法 15 而不用考虑前一层是怎么得到最优解的 16 */ 17 18 #include <stdio.h> 19 #include <string.h> 20 int cash; 21 int n[11],dk[11]; 22 int dp[1000000]; 23 inline int max(const int &a, const int &b) 24 { 25 return a < b ? b : a; 26 } 27 void CompletePack(int cost) 28 { 29 for(int i=cost; i<=cash; ++i) 30 dp[i] = max(dp[i],dp[i-cost]+cost); 31 } 32 void ZeroOnePack(int cost) 33 { 34 for(int i=cash; i>=cost; --i) 35 dp[i] = max(dp[i],dp[i-cost]+cost); 36 } 37 void MultiplePack(int cnt, int cost) 38 { 39 if(cnt*cost >=cash)//如果第i种物品的费用总和超过背包容量,那么就是完全背包问题 40 CompletePack(cost); 41 else 42 { 43 int k = 1;//二进制拆分 44 while(k<cnt)//判断剩下的数字能不能够拆分为k 45 { 46 ZeroOnePack(cost*k); 47 cnt -=k; 48 k<<=1; 49 } 50 ZeroOnePack(cnt*cost); 51 } 52 } 53 int main() 54 { 55 //输入的处理以及函数的调用 56 return 0; 57 }
转载于:https://www.cnblogs.com/justPassBy/p/4279238.html
背包九讲之四(混合三种背包问题)相关推荐
- 完全背包问题python_令人头疼的背包九讲(2)完全背包问题
重磅干货,第一时间送达 背包问题是一个经典的动态规划模型.它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少教材都把它作为动态规划部分的第一道例题. 题目 完全背包问题 题目要求 有n ...
- dd大牛的背包九讲-背包问题汇总
背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 ...
- 背包问题——背包九讲
本帖主要为转载,只是供我学习,如有侵权,请联系我删除. 前言 本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,名 ...
- 第二讲 完全背包问题(对背包九讲的学习)
学习自:背包九讲 题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用.第i种物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大. ...
- 算法--背包九讲(详细讲解+代码)
背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 ...
- dalao的背包九讲
背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 ...
- 【转】《背包九讲》--崔添翼大神
背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物 ...
- 转载——背包九讲(原文链接已不可考)
浙大崔添翼对背包问题的讲解,观点很高也很深刻,特此转载. 背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问 ...
- Backpack-problem背包九讲笔记
背包问题 1 01背包 1.1题目 有NNN件物品和一个容量为VVV的背包,放入第iii件物品耗费的费用是CiC_iCi,得到的价值是WiW_iWi.求解将哪些物品放入背包可使价值总和最大. ex ...
最新文章
- 基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例
- 定位的准确度与精度指标定义——RMS,CEP,Sigma
- 普罗米修斯java_springboot集成普罗米修斯(Prometheus)的方法
- 离群值如何处理_有理处理离群值的局限性
- 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
- RocketMq 事务消息使用
- mysql skip slave_MYSQL replication slave-skip-errors 详解
- python模拟登录淘宝_Python模拟登陆淘宝示例源码
- 计算机课评课用语,【数学评课50条】_评课常用语50条
- 如何将计算机网络作为热点,教你如何三步让笔记本电脑做wifi热点??
- lazarus 中文教程_Delphi 项目转Lazarus 教程
- 区块链的发展与未来前景!
- 手机b站封面提取网站_二次元之家 视频网站B站上海与北京办公设计欣赏
- 什么软件测试苹果手机循环电池,如何检查iPhone电池的电池循环次数,看完你就明白了...
- 苹果手机测距离_重量仅6g,智能距离检测,安卓苹果平板手机都能用,声光多级提醒...
- Linux服务器运行状况全面监测
- LinuxTracing System浅析和eBPF开发经验分享
- iPhoneX安全区域与H5引发的问题(Safe Area)
- python项目练习
- 如何授权企业证书,使用企业级的APP
热门文章
- mysql my.cnf参数配置_MySQLmy.cnf参数配置优化详解
- JZOJ 5922. 【NOIP2018模拟10.23】sequence
- JZOJ 5477. 【NOIP2017提高组正式赛】宝藏
- v3是c语言吗 yolo_YOLOv3
- Qt 软键盘[模拟]之键盘触发事件
- 简述osi参考模型各层主要功能_计软考研双日练 | OSI参考模型各层提供什么服务?...
- 如何快速切换静态和动态ip
- CVPR 2018 MCCT:《Multi-Cue Correlation Filters for Roubust Visual Tracking》论文笔记
- mongo 时间格式化 查询_MongoDB中查询转换(将时间戳转变通用日期格式)
- 互动整合营销_今天,我们谈谈展会的整合营销!