http://acm.hdu.edu.cn/showproblem.php?pid=2546

题意:

  给你一些饭菜的价格,和你饭卡的余额,余额大于等于5元时可以刷任何价格的菜,算出你买了这些菜之后饭卡中最少的一组解(余额可以为负)。

坑爹:

  这道题中,他的价格也就是背包中的容量,也是背包中的价值,总余额如果超出5元要将总余额减去5元的钱尽量用掉。

 

解法

  用到了一点贪心的思想,用一个sort排序,将便宜的菜买了,尽量将饭卡里的余额靠近5元,然后在买一个最贵的菜,这样就会让饭卡里的余额最少了。

View Code

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4
 5 const int maxn =1000 + 10;
 6 int f[maxn];
 7 int more;
 8
 9 int max(int a,int b)
10 {
11     return a>b?a:b;
12 }
13
14
15 void ZeroOnePack(int cost,int weight)
16 {
17     int j;
18     for(j=more;j>=cost;j--)
19     {
20         f[j]=max(f[j],f[j-cost]+weight);
21     }
22 }
23
24 int main()
25 {
26     int n;
27     while(cin>>n,n)
28     {
29         int i;
30         int num[maxn];
31         int money;
32         int exp;
33         int sum=0;
34         memset(f,0,sizeof(f));
35         for(i=0; i<n; i++)
36         {
37             cin>>num[i];
38             sum+=num[i];
39         }
40         sort(num,num+n);
41         exp=num[n-1];
42         cin>>money;
43         if(money<5)
44         {
45             cout<<money<<endl;
46             continue;
47         }
48         more=money-5;
49         for(i=0; i<n-1; i++)
50         {
51             ZeroOnePack(num[i],num[i]);
52         }
53
54         cout<<money-f[more]-exp<<endl;
55     }
56     return 0;
57 } 

转载于:https://www.cnblogs.com/pcpcpc/archive/2012/09/05/2672502.html

HDU 2546 饭卡 动态规划01背包相关推荐

  1. hdu 2546 饭卡【01背包】

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

  2. hdu 2546 饭卡(01背包)

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

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

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

  4. HDU 2546 饭卡 01背包变形

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

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

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

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

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

  7. HDU -2546饭卡(01背包+贪心)

    这道题有个小小的坎,就是低于5块不能选,大于5块,可以任意选,所以就在初始条件判断一下剩余钱数,然后如果大于5的话,这时候就要用到贪心的思想,只要大于等于5,先找最大的那个,然后剩下的再去用背包去选择 ...

  8. 【Cqupt热身赛】诡异的饭卡 【01背包、动态规划】

    DescriptionDescriptionDescription 海女美术大学食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于555元,就一定可以购 ...

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

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

  10. HDOJ 2546饭卡(01背包问题)

    http://acm.hdu.edu.cn/showproblem.php?pid=2546 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如 ...

最新文章

  1. MySQL优化篇:explain性能分析
  2. 第七届杭州云栖大会召开 阿里云在人工智能领域发力
  3. 如何用好消息推送(JPush)为app拉新、留存、促活
  4. 贴一段数组动态扩容的代码
  5. 3.Java中的关键字和注释
  6. RabbitMQ—性能测试
  7. 2018-3-24Linux系统管理(13)程序包管理(3)yum前端配置及编译
  8. 陈景润:激励青年勇攀科学高峰的典范
  9. php写按条件查询代码,php如何实现按条件查询
  10. JSP页面间传递参数
  11. Object-C 与C/C++的区别
  12. 基于蒙特卡洛的大规模电动汽车充电行为分析(Matlab代码实现)
  13. Qt添加工具栏按钮————附详细步骤
  14. Doom3引擎初始化分析
  15. org.postgresql.util.PSQLException: ERROR: column loginid of relation userinfo does not exist
  16. 疫情防控之防疫消杀管理系统
  17. HDOJ 5142 NPY and FFT
  18. 《网络空间测绘技术与实践》正式发售,让网络空间作战“有图可依”
  19. MySql 笛卡儿积
  20. 终端服务的剪贴板的缺陷,导致WPF调用Clipboard.SetText() 失败

热门文章

  1. html资源路径404,webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)...
  2. 基于Python3爬取百度百科内容(可自己输入关键字)
  3. 风控中英文术语手册(银行_消费金融信贷业务)_version6
  4. win7 时间服务器地址修改,win7 时间服务器地址修改
  5. for的循环在php那边使用,for循环如何在php怎么中使用
  6. 翻译:iOS上的MVVM + RxSwift架构对比 MVC,MVVM,MVP和VIPER
  7. Json转换为Model,Struct,Class对象 Swift
  8. 批量识别图片大致不相同图片_一款非常优秀的文字识别工具,可以批量图片识别文字...
  9. java 如何将word 转换为ftl_3种方法轻松将PDF转换为Word文档,办公必备
  10. Evolved Transformer