这道题有个小小的坎,就是低于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背包+贪心)相关推荐

  1. HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  2. HDU 2546 饭卡 01背包变形

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  3. hdu 2546 饭卡【贪心+01背包基础题】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  4. hdu 2546 饭卡——一道简单的 01背包

    今天讲的是动态规划,学长们拉了13道题让我们做一下,一下午大概4小时,做了5道题(还是太弱了 摊手) 题意: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上 ...

  5. hdu 2546 饭卡【01背包】

    题目链接:https://vjudge.net/contest/103424#problem/C 饭卡                                Time Limit: 5000/ ...

  6. hdu 2546 饭卡(01背包)

    题意:只要最后留下的钱够5元,就可以买下最贵的食物,使得余额最低,其他的钱的使用就是一个最大背包问题了. 代码: #include<iostream> #include<cstrin ...

  7. HDU 2546 饭卡(贪心+DP)

    题目链接 几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为 ...

  8. hdu 2546 饭卡(P01-背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 转载请注明出处:http://blog.csdn.net/u012860063 饭卡 Time ...

  9. HDU - 最大报销额(01背包|贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...

最新文章

  1. 1137 - Sin your life sin公式 + 枚举
  2. 英特尔柏安娜:数据中心演进的三大推动力
  3. pytorch 忽略层权重
  4. 同一个电脑安装两个jdk版本
  5. 计蒜客(三角形的内点)
  6. mysql查找内容某字符串出现的次数_查找MySQL中特定字符串出现的次数?
  7. 使用字符串解析的方式完成计算器的设计思路
  8. 使用Jenkins来发布和代理.NetCore项目
  9. 项目启动后去除项目标题,去除时间与状态栏Android
  10. 新开局哦----!!!
  11. opencv获取人脸眼镜位置_用opencv检测人眼并定位瞳孔位置
  12. linux学习笔记-切换目录
  13. python3中文长度_python3获得汉字长度
  14. WordPress安装时未选择语言导致变成英文无法修改成中文
  15. GPS:一个去中心化的抽奖式Token Offering模型
  16. 人工智能、机器学习、深度学习从入门到进阶学习资料整理
  17. Django channels摄像头实时视频传输
  18. Multisim基础 示波器 波形沿Y轴正方向上移一格
  19. C盘爆满的解决方案?很可能是因为这个Group2文件夹
  20. Vue后台管理系统项目——实现登录功能

热门文章

  1. 计算机技术分,计算机技术专业那么多,你分得清吗?
  2. Linux下载源码编译出错,linux下fortran中编译代码时“undefined reference to `_gfortran_st_”错误...
  3. CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
  4. Windows 10配置VS Code C++环境(超详细,面向小白以及大佬们)
  5. 有关C语言中有符号/无符号数混合运算的小问题
  6. 对于随机过程方面书籍的评论(转贴)
  7. 【python 3】 面向对象
  8. raspberry pi_通过串行蓝牙从Raspberry Pi传感器单元发送数据
  9. “像你一样”与海容天天:OPEN国际行为艺术展十周年
  10. 热转印法手工自制单面PCB流程和技巧总结