中南大学复试上机:饭卡
1076: 饭卡
时间限制: 1 Sec 内存限制: 128 MB
题目描述
CSU本部食堂的饭卡有一种很诡异的设计——在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。
某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。
输入
多组数据。对于每组数据:
第一行为正整数n,表示菜的数量。n<=1000。
第二行包括n个正整数,表示每种菜的价格。价格不超过50。
第三行包括一个正整数m,表示卡上的余额。m<=1000。
输出
对于每组输入,输出一行,包含一个整数,表示卡上可能的最小余额。
样例输入
1 50 5 10 1 2 3 2 1 1 2 3 2 1 50
样例输出
-45 32
来源/分类
代码:
#include<stdio.h>
int max(int a,int b){if(a>b)return a;elsereturn b;
}
void quicksort(int r[],int low,int high){int temp;int i=low,j=high;if(low<high){temp = r[low];while(i<j){while(i<j){while(j>i&&(r[j])>=(temp))--j;if(i<j){r[i]=r[j];++i;}while(i<j&&(r[i])<(temp))++i;if(i<j){r[j]=r[i];--j;}}r[i]=temp;quicksort(r,low,i-1);quicksort(r,i+1,high);}}
}
int main(){int n;//菜的数量while(scanf("%d",&n)!=EOF){int mon[n];int i,j;for(i=0;i<n;i++){scanf("%d",&mon[i]);}int money;scanf("%d",&money);int dp[money];for(i=0;i<money;i++)dp[i]=0;quicksort(mon,0,n-1);if(money-5<0)printf("%d\n",money);else{for(i=0;i<n-1;i++){for(j=money-5;j>=mon[i];j--){dp[j]=max(dp[j],dp[j-mon[i]]+mon[i]);}}printf("%d\n",money-dp[money-5]-mon[n-1]);}}
}
中南大学复试上机:饭卡相关推荐
- 中南大学复试上机:1021:机器人走迷宫
1021: 机器人走迷宫 时间限制: 1 Sec 内存限制: 128 MB 题目描述 有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱.他想要访问迷宫的每个方格,但是它很笨,只会按照指令的 ...
- 中南大学复试上机:1009: 安全路径
1009: 安全路径 时间限制: 1 Sec 内存限制: 128 MB 提交: 445 解决: 82 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 卫斯理小说经常提及外星人,比如 ...
- uestc 1012 饭卡
饭卡(card) Time Limit: 1000 ms Memory Limit: 65535 kB Solved: 253 Tried: 2169 Submit Status Best Solut ...
- HDU 2564 饭卡
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- 饭卡(HDOJ2546)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2546 饭卡(贪心+DP)
题目链接 几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为 ...
- HDOJ 2546饭卡(01背包问题)
http://acm.hdu.edu.cn/showproblem.php?pid=2546 Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如 ...
- HDU 2546 饭卡(01背包裸题)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hduoj 2546饭卡
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
最新文章
- 串口接收数据与分析处理
- 五指CMS发布,主打高性能
- Spartan-6 FPGA SelectIO Resources User Guide 笔记2 SelectIO Attributes/Constraints
- 响应式API的设计、实现和应用
- ab st语言编程手册_从零开始学习ST/SCL编程语言:一赋值及条件执行指令的讲解...
- 编辑框CEdit自动换行简单设置
- 【博客项目】—密码加密( 六)
- 老男孩高端linux培训2014业务服务范围
- 六千字干货文:到底要怎么去学算法?
- lpt监控安装_LPT说明书
- 对数据库中的数据(用户名/密码)加密解密
- LibreCAD+Mingw编译记录
- VoIP通话-基于SIP协议的Asterisk(一)-实现流程
- YOLO V2得到的启发
- 读过的laravel文章
- 计算机电源维修tny279,电源管理芯片TNY279P
- 【Android】Bug:SSL peer shut down incorrectly 的解决方法
- 研发主管的烦恼:选择KPI还是选择OKR?
- 计算机体系结构 第5章 指令级并行及其开发—硬件方法(3)
- 关于联通手机营业厅中的在线销户,大家有什么想说的?