hdu 3732(01背包转多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3732
思路:这么大的数据,用01背包肯定会TLE的,01背包转多重背包。。最多也就11*11=121件物品。。。
1 #include<iostream> 2 using namespace std; 3 int dp[10010]; 4 int map[14][14]; 5 int n,m; 6 7 void CompletePack(int value,int cost){ 8 for(int j=cost;j<=m;j++){ 9 dp[j]=max(dp[j],dp[j-cost]+value); 10 } 11 } 12 13 void ZeroOnePack(int value,int cost){ 14 for(int j=m;j>=cost;j--){ 15 dp[j]=max(dp[j],dp[j-cost]+value); 16 } 17 } 18 19 20 int main(){ 21 while(~scanf("%d%d",&n,&m)){ 22 char str[14]; 23 int a,b; 24 memset(dp,0,sizeof(dp)); 25 memset(map,0,sizeof(map)); 26 for(int i=0;i<n;i++){ 27 scanf("%s%d%d",str,&a,&b); 28 map[a][b]++;//转化为物品的件数 29 } 30 for(int i=0;i<=10;i++){ 31 for(int j=0;j<=10;j++){ 32 if(map[i][j]*j>=m){ 33 CompletePack(i,j);//件数*花费>=总花费,完全背包 34 }else { 35 //0-1背包 36 int k=1; 37 while(k<map[i][j]){ 38 ZeroOnePack(i*k,j*k); 39 map[i][j]-=k; 40 k*=2; 41 } 42 ZeroOnePack(i*map[i][j],j*map[i][j]); 43 } 44 } 45 } 46 printf("%d\n",dp[m]); 47 } 48 return 0; 49 }
hdu 3732(01背包转多重背包)相关推荐
- 背包问题教程-01背包,完全背包,多重背包,混合背包 收藏
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 基本思路 这是最基础的背包问题,特点是:每种物品仅有 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 01背包输出路径、完全背包、多重背包
背包问题 一.01 Knapsack(输出路径- >选的物品) 二.完全背包 1.三重循环,极可能TLE,滚动数组优化后j逆向枚举 2.二重,优化消去变量k(没有特别厘清,但可以直接从完全背包角 ...
- 01背包模板、全然背包 and 多重背包(模板)
转载请注明出处:http://blog.csdn.net/u012860063 贴一个自觉得解说不错的链接:http://www.cppblog.com/tanky-woo/archive/2010/ ...
- 【HDU 1059】Dividing(多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意:有6种物品,价值分别是1,2,3,4,5,6,每种物品有n[ i ]个,,问是否能将其平分 ...
- 01背包模板、完全背包 and 多重背包
转载请注明出处:http://blog.csdn.net/u012860063 讲解链接:http://www.cppblog.com/tanky-woo/archive/2010/07/31/121 ...
- 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解
01背包问题: 状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j] ...
- 动态规划-----------01背包,完全背包与多重背包
P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 基本思路 这是最基础的背包问题,特点是:每种物品仅有 ...
- 01背包,完全背包,多重背包,分组背包的使用条件以及代码模板
背包问题算是动态规划中的入门题目了,背包问题有很多种.背包九讲中讲的很清楚,我就不班门弄斧了,针对几种比较常见的背包问题,阐述一下它的使用前提和代码模板. 1.01背包问题 题目 有N 件物品和一个容 ...
最新文章
- java socket输入流_java – Socket输入流挂在最后读取.最好的办法呢?
- 豪横!程序员搭个人博客,一个 GitHub 账号足矣!
- hal库开启中断关中断_stm32的HAL库开发学习笔记之外部中断
- JavaScript --- [学习笔记]观察者模式 理解对象 工厂模式 构造函数模式
- 这样学英语三个月超过你过去学三年
- 基于Fork/Join框架实现对大型浮点数数组排序(归并算法和插入排序算法) 1
- java 邮件内嵌图片_(二)JavaMail创建包含内嵌图片的邮件
- 博图中fb与多重背景数据块_STEP7中如何生成和更新多重背景?
- xbox 手柄按键测试软件,unity中链接Xbox手柄设置及按键检测
- es数据定时清理_elasticsearch索引自动清理
- 单因素方差分析及其相关检验
- CDP营销方案 不仅仅是数据整合
- less混合 + less计算
- centso系统命令来源查询
- linux内核 quota,Linux系统磁盘配额(quota)
- C++17尝鲜:fold expression(折叠表达式)
- linux下磁盘坏道修复,linux磁盘坏道修复记录
- java geojson和数据库_GeoJson和TopoJson数据格式的对比
- 手游测试(测试内容、测试流程、测试用例)
- 微博爬虫及简单数据分析
热门文章
- 虚拟机无法访问主机mysql_解决虚拟机linux端mysql数据库无法远程访问
- libgdx和android界面结合,Android游戏引擎libgdx使用教程5:常用UI类与舞台
- 全国大学生智能猫竞速比赛
- 无线节能组信标为什么会自动切换? 排查故障的过程真的像谜一样无法解释
- 液晶模块 LM6063A接口转接
- 全自动STC下载电路设计
- python中scale的用法_Python Decimal scaleb()用法及代码示例
- python获取文件的大小_python获取文件大小
- java 字符串写入word,JAVA 将字符串hollow 替换成word肿么实现?
- mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)