饭卡
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 61781 Accepted Submission(s): 21084

Problem Description
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。
某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。

Input
多组数据。对于每组数据:
第一行为正整数n,表示菜的数量。n<=1000。
第二行包括n个正整数,表示每种菜的价格。价格不超过50。
第三行包括一个正整数m,表示卡上的余额。m<=1000。

n=0表示数据结束。

Output
对于每组输入,输出一行,包含一个整数,表示卡上可能的最小余额。

Sample Input
1
50
5
10
1 2 3 2 1 1 2 3 2 1
50
0

Sample Output
-45
32

Source
UESTC 6th Programming Contest Online

问题链接:HDU2546 饭卡
问题简述:(略)
问题分析:贪心+0-1背包问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU2546 饭卡 */#include <bits/stdc++.h>using namespace std;const int N = 1000 + 1;
int a[N], dp[N];int main()
{int n, m;while (~scanf("%d", &n) && n) {for (int i = 1; i <= n; i++) scanf("%d", &a[i]);scanf("%d", &m);sort(a + 1, a + 1 + n);if (m < 5) printf("%d\n", m);else {memset(dp, 0, sizeof dp);m -= 5;for (int i = 1; i < n; i++)for (int j = m; j >= a[i]; j--)dp[j] = max(dp[j], dp[j - a[i]] + a[i]);printf("%d\n", m - dp[m] + (5 - a[n]));}}return 0;
}

HDU2546 饭卡【贪心+0-1背包】相关推荐

  1. 饭卡问题(0-1背包的变形)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  2. 【HDU - 2546】饭卡 (dp,0-1背包,贪心思想)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  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 饭卡(贪心+DP)

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

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

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

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

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

  7. HDU 2546 饭卡 01背包变形

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

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

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

  9. hdu 2546 饭卡【01背包】

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

最新文章

  1. [codevs 2236] 终极情报网
  2. 面向对象2(构造方法、抽象类、接口)
  3. .net core Entity Framework Core Code First 框架 分层开发
  4. FIFO分枝_限界算法
  5. android listpreference 自定义,Android – 我的ListPreference中的自定义行布局
  6. 使用html() undefined_SweetAlert2使用教程
  7. ajax php接收不到数据库,PHP更新MySQL数据库与AJAX调用没有做任何事情
  8. 作者:胡青青(1984-),女,就职于中国人民银行征信中心数据部
  9. 啥是前端开发工程师必会的5种网页布局方法?
  10. java中的final关键字(2013-10-11-163 写的日志迁移
  11. 如何想要在开机启动登陆时,用户名也不输入
  12. 为什么静态static成员函数不能成为virtual虚函数
  13. 或许是 Nginx 上配置 HTTP2 最实在的教程了
  14. linux板级设备的,linux板级设备的初始化过程是怎样的?
  15. beyond compare如何设置只比较实际内容?(使用关联规则比较)
  16. 济南钢城四中2021高考成绩查询,武汉高中排行榜分数线2021
  17. 删除 drop truncate delete
  18. 最好用的内网穿透工具合集
  19. OAuth2第三方登录快速接入
  20. 《企业经营统计学》CH.4 企业产出统计分析

热门文章

  1. 2019-11-07 检查gcc交叉编译器预定义宏(ARM32/ARM64/X86-64)以及对浮点数的支持情况
  2. 2018-08-10 Netty:4.x
  3. 2年3个月推倒重来的决心 独立游戏《须弥•域》的涅槃之路
  4. C#多线程学习(四) 多线程的自动管理(线程池)
  5. linux普通用户id一般是,实际用户ID和有效用户ID (一) *****
  6. python数据分析与挖掘实战pdf_《Python数据分析与挖掘实战》PDF+完整源码
  7. 【java奇思妙想】关于JavaScript实现全选,全不选以及反选功能的示例
  8. 【java奇思妙想】使用多线程的思想来实现java网络编程接收和发送的问题
  9. Hadoop 之 Distcp官网介绍和注意事项
  10. c语言源程序总是由一个或多个函数组成,2016年中山大学卡内基梅隆大学C语言程序设计复试笔试仿真模拟题...