BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】
题目链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1333
题意:
有n种不同币值的硬币,并保证大币值一定是小币值的倍数。
每种硬币的币值为val,数量为cnt。
每个月你要给Bessie发金额为c的津贴(可以比c多,但不能少)。
问你最多能发多少个月。
题解:
贪心。
贪心策略:
(1)如果能恰好凑出c的钱,则应尽可能使用大币值的硬币。
(2)如果不能恰好凑出,则应让花的冤枉钱尽可能少。
实现:
先按币值从大到小排序。。。
(1)在保证不花冤枉钱的前提下,尽可能使用大硬币。
(2)如果没凑够c,则再付一个币值最小的硬币。(在第一步之后,再任意给出一个硬币都会使总付出大于c)
AC Code:
1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <algorithm> 5 #define MAX_N 25 6 7 using namespace std; 8 9 struct Coin 10 { 11 int val; 12 int cnt; 13 Coin(int _val,int _cnt) 14 { 15 val=_val; 16 cnt=_cnt; 17 } 18 Coin(){} 19 friend bool operator < (const Coin &a,const Coin &b) 20 { 21 return a.val>b.val; 22 } 23 }; 24 25 int n,c; 26 int ans=0; 27 Coin coin[MAX_N]; 28 29 bool pay() 30 { 31 int rest=c; 32 for(int i=0;i<n;i++) 33 { 34 int temp=min(coin[i].cnt,rest/coin[i].val); 35 coin[i].cnt-=temp; 36 rest-=temp*coin[i].val; 37 } 38 if(rest==0) return true; 39 for(int i=n-1;i>=0;i--) 40 { 41 if(coin[i].cnt!=0) 42 { 43 coin[i].cnt--; 44 return true; 45 } 46 } 47 return false; 48 } 49 50 int main() 51 { 52 cin>>n>>c; 53 for(int i=0;i<n;i++) 54 { 55 cin>>coin[i].val>>coin[i].cnt; 56 } 57 sort(coin,coin+n); 58 while(pay()) ans++; 59 cout<<ans<<endl; 60 }
转载于:https://www.cnblogs.com/Leohh/p/7565240.html
BZOJ 1685 [Usaco2005 Oct]Allowance 津贴:贪心【给硬币问题】相关推荐
- bzoj 1685: [Usaco2005 Oct]Allowance 津贴(贪心)
1685: [Usaco2005 Oct]Allowance 津贴 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 264 Solved: 195 [S ...
- bzoj 1684: [Usaco2005 Oct]Close Encounter【数学(?)】
枚举分母,然后离他最近的分子只有两个,分别判断一下能不能用来更新答案即可 #include<iostream> #include<cstdio> #include<cma ...
- bzoj1745[Usaco2005 oct]Flying Right 飞行航班*
bzoj1745[Usaco2005 oct]Flying Right 飞行航班 题意: n个农场,有k群牛要从一个农场到另一个农场(每群由一只或几只奶牛组成)飞机白天从农场1到农场n,晚上从农场n到 ...
- bzoj1684[Usaco2005 Oct]Close Encounter*
bzoj1684[Usaco2005 Oct]Close Encounter 题意: 找一个分数它最接近给出一个分数.你要找的分数的分子分母的范围在1..32767. 题解: 枚举所求分数的分子,用其 ...
- BZOJ 2151 种树(可反悔贪心,链表)【BZOJ千题计划】就图一乐
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2151 是 hydro 的 BZOJ ...
- BZOJ 2135 刷题计划(贪心,求导,二分)【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2135 是 hydro 的 BZOJ ...
- BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )
数据 n <= 30000 , 然后 O( n² ) 的贪心也过了..... USACO 数据是有多弱啊 = = ( ps : BZOJ 1640 和此题一模一样 , 双倍经验 ) ------ ...
- bzoj 3386 bzoj 3408: [Usaco2009 Oct]Heat Wave 热浪(最短路)
3408: [Usaco2009 Oct]Heat Wave 热浪 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 301 Solved: 223 [ ...
- poj 3040 Allowance (贪心
作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴.FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币.5美分硬币.10美 ...
最新文章
- Linux下C/C++编译环境搭建
- Xamarin开发Android笔记:使用ZXing进行连续扫描
- Linux下判断cpu物理个数,几核,是超线程还是多核心
- 工具杂记-notepad++正则表达式匹配替换
- poj 3280 区间dp
- idea展现目录清晰方式
- 【原神】元素反应机制
- 显控触摸屏编程手册_深圳显控AKWORKSHOP触摸屏与ALLENBRADLEY通讯手册.pdf
- 标签制作软件如何制作圆形标签中的弧形文字
- 新一代HTAP数据库崛起,MySQL生态的最佳归宿?
- 类似于计算机的文件管理器,XYplorer 21比电脑自带的文件管理器还好用的工具
- 软件工程导论第六版 第一章 软件工程学概述知识点总结(下)
- angular ts 表格_Angular8 ui-grid替代方案ag-grid入门
- 导入semantic-ui-css/semantic.min.css样式失败
- iMeta | 林雁冰/James M. Tiedje/谷洁等揭示菌群对寄生植物列当的调控作用
- Linux文件类型之 管道
- 使用MAC进行软件开发
- 人工神经网络 经验公式_文科生看了会沉默,理科生看了会流泪的物理公式!你知道几个?(看完长见识)...
- 【2022-01-06】验证码合集
- 合肥市第 34 届青少年信息学(计算机)奥林匹克竞赛小学组试题
热门文章
- 几种常用通信协议:IIC协议、SPI协议、UART协议
- 蒙面也能识别?俄罗斯开发新技术,伪装犯罪将在监控下无处遁行
- 系统学习机器学习之决策树
- mysql画事实表_sql生成事实表数据库
- mysql使用shell脚本部署_shell脚本部署mysql主从
- boostrap 鼠标滚轮滑动图片_BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)...
- pythonset操作教程_Python集合(set)方式和使用方法
- SSM框架的搭建(idea)
- 思科ssh验证方式_SSH的应用:一个实例两种验证模式的实现
- oracle shutdown 默认,Oracle的shutdown命令