HDU -2546饭卡(01背包+贪心)
这道题有个小小的坎,就是低于5块不能选,大于5块,可以任意选,所以就在初始条件判断一下剩余钱数,然后如果大于5的话,这时候就要用到贪心的思想,只要大于等于5,先找最大的那个,然后剩下的再去用背包去选择,这样的结果一定是最优的。因为最大的那个一定会被选中,剩下多少钱都无所谓,用背包可以获得剩下的最优解,所以最后也是最优解
代码如下
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int N = 1006; 6 int dp[N]; 7 int value[N]; 8 int main() 9 { 10 int n; 11 while (scanf("%d", &n) == 1, n) 12 { 13 for (int i = 0; i < n; i++) 14 scanf("%d", &value[i]); 15 int v; 16 scanf("%d", &v); 17 if (v < 5)//如果初始条件都不满足,直接输出金额 18 { 19 printf("%d\n", v); 20 continue; 21 } 22 sort(value, value + n);//排序 23 memset(dp, 0, sizeof(dp)); 24 //01背包 25 for (int i = 0; i < n - 1; i++) 26 { 27 for (int j = v - 5; j >= value[i]; j--) 28 if (dp[j] < dp[j - value[i]] + value[i]) 29 dp[j] = dp[j - value[i]] + value[i]; 30 } 31 printf("%d\n", v - dp[v - 5] - value[n - 1]); 32 } 33 return 0; 34 }
转载于:https://www.cnblogs.com/Howe-Young/p/4165858.html
HDU -2546饭卡(01背包+贪心)相关推荐
- HDU 2546 饭卡(01背包裸题)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2546 饭卡 01背包变形
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hdu 2546 饭卡【贪心+01背包基础题】
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- hdu 2546 饭卡——一道简单的 01背包
今天讲的是动态规划,学长们拉了13道题让我们做一下,一下午大概4小时,做了5道题(还是太弱了 摊手) 题意: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上 ...
- hdu 2546 饭卡【01背包】
题目链接:https://vjudge.net/contest/103424#problem/C 饭卡 Time Limit: 5000/ ...
- hdu 2546 饭卡(01背包)
题意:只要最后留下的钱够5元,就可以买下最贵的食物,使得余额最低,其他的钱的使用就是一个最大背包问题了. 代码: #include<iostream> #include<cstrin ...
- HDU 2546 饭卡(贪心+DP)
题目链接 几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为 ...
- hdu 2546 饭卡(P01-背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 转载请注明出处:http://blog.csdn.net/u012860063 饭卡 Time ...
- HDU - 最大报销额(01背包|贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...
最新文章
- 1137 - Sin your life sin公式 + 枚举
- 英特尔柏安娜:数据中心演进的三大推动力
- pytorch 忽略层权重
- 同一个电脑安装两个jdk版本
- 计蒜客(三角形的内点)
- mysql查找内容某字符串出现的次数_查找MySQL中特定字符串出现的次数?
- 使用字符串解析的方式完成计算器的设计思路
- 使用Jenkins来发布和代理.NetCore项目
- 项目启动后去除项目标题,去除时间与状态栏Android
- 新开局哦----!!!
- opencv获取人脸眼镜位置_用opencv检测人眼并定位瞳孔位置
- linux学习笔记-切换目录
- python3中文长度_python3获得汉字长度
- WordPress安装时未选择语言导致变成英文无法修改成中文
- GPS:一个去中心化的抽奖式Token Offering模型
- 人工智能、机器学习、深度学习从入门到进阶学习资料整理
- Django channels摄像头实时视频传输
- Multisim基础 示波器 波形沿Y轴正方向上移一格
- C盘爆满的解决方案?很可能是因为这个Group2文件夹
- Vue后台管理系统项目——实现登录功能
热门文章
- 计算机技术分,计算机技术专业那么多,你分得清吗?
- Linux下载源码编译出错,linux下fortran中编译代码时“undefined reference to `_gfortran_st_”错误...
- CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
- Windows 10配置VS Code C++环境(超详细,面向小白以及大佬们)
- 有关C语言中有符号/无符号数混合运算的小问题
- 对于随机过程方面书籍的评论(转贴)
- 【python 3】 面向对象
- raspberry pi_通过串行蓝牙从Raspberry Pi传感器单元发送数据
- “像你一样”与海容天天:OPEN国际行为艺术展十周年
- 热转印法手工自制单面PCB流程和技巧总结