TYVJ P1032 零用钱 Label:贪心
背景
USACO OCT09 7TH
描述
作為创造產奶纪录的回报,Farmer John决定开始每个星期给Bessie一点零花钱。
FJ有一些硬币,一共有N (1 <= N <= 20)种不同的面额。每一个面额都能整除所有比它大的面额。
他想用给定的硬币的集合,每个星期至少给Bessie某个零花钱的数目C (1 <= C <= 
100000000)。请帮他计算他最多能支付多少个星期的零花钱。
输入格式
* 第一行: 两个由空格隔开的整数: N 和 C
* 第2到第N+1行: 每一行有两个整数表示一个面额的硬币:硬币面额V (1 <= V <= 
100,000,000)和Farmer John拥有的该面额的硬币数B (1 <= B <=
        1,000,000).
输出格式
* 第一行: 一个单独的整数,表示Farmer John最多能给Bessie支付多少个星期至少為C的零用钱。
测试样例1
输入
3 6
10 1
1 100
5 120
输出
111
备注
FJ想要每个星期给Bessie六美分。他有100个1美分硬币,120个5美分硬币,和一个10美分硬币。
FJ可以在一个星期超额付给Bessie一个10美分硬币。然后接下来的10个星期每星期付给
Bessie两个5美分硬币。最后100个星期每星期付给Bessie一个1美分硬币跟一个5美分硬
币。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int N,C,ans,flag=,k;
struct cc{
int mon,num;
}a[]; bool cmp(cc a,cc b){
return a.mon<b.mon;
} void init_(){
scanf("%d%d",&N,&C);
for(int i=;i<=N;++i){
scanf("%d%d",&a[i].mon,&a[i].num);
}
sort(a+,a+N+,cmp);
} void solve(){
for(int i=N;i>=;--i){
while(a[i].num>&&k-a[i].mon>){
--a[i].num;
k-=a[i].mon;
}
}
for(int i=;i<=N;++i){
while(a[i].num>&&k>){
--a[i].num;
k-=a[i].mon;
}
}
} int main(){
// freopen("01.txt","r",stdin);
init_(); while(flag){
flag=;
k=C;
solve();
if(k<=){
++ans;
flag=;
}
} printf("%d\n",ans);
return ;
}贪心,记得排序
吐槽一下,usaco很喜欢奶牛?这几天tyvj做下来全是奶牛
TYVJ P1032 零用钱 Label:贪心的更多相关文章
- TYVJ P1088 treat Label:鞭笞人的DP
		
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 广东汕头聿怀初中 Train#2 Problem2 描述 给出长度为N的数列{A_i},每次可以从最左边或者最 ...
 - cdoj 1334 郭大侠与Rabi-Ribi Label:贪心+数据结构
		
郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 最近 ...
 - NOI OpenJudge 8469 特殊密码锁 Label贪心
		
描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转.当然,如果你 ...
 - TYVJ P1004 滑雪 Label:记忆化搜索
		
背景 成成第一次模拟赛 第三道 描述 trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行的路线必须向下倾斜. ...
 - TYVJ P1068 STR Label:KMP匹配 不懂
		
描述 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的长度.给定K个询问,对于每个询问给定一个x,求出匹配长度恰为x的位置有多少个.N,M,K<=200000 输入格式 第一行三个数 ...
 - TYVJ P1070 罗马数字 Label:一定要看的枚举
		
描述 一类书的序言是以罗马数字标页码的.传统罗马数字用单个字母表示特定的数值,以下是标准数字表: I 1 L 50 M 1000V 5 C 100X 10 D 500最多3个同样的可以表示为10 ...
 - TYVJ P1090 母舰 Label:模拟,题目看清就好
		
背景 广东汕头聿怀初中 Train#3 Problem 1 描述 在小A的星际大战游戏中,一艘强力的母舰往往决定了一场战争的胜负.一艘母舰的攻击力是普通的MA(Mobile Armor)无法比较的.对 ...
 - TYVJ P1077 有理逼近 Label:坑,tle的好帮手 不懂
		
描述 对于一个素数P,我们可以用一系列有理分数(分子.分母都是不大于N的自然数)来逼近sqrt(p),例如P=2,N=5的时候:1/1<5/4<4/3<sqrt(2)<3/2& ...
 - TYVJ P1072 bomb Label:看不懂题意
		
描述 一场战争正在A国与B国之间如火如荼的展开.B国凭借其强大的经济实力开发出了无数的远程攻击导弹,B国的领导人希望,通过这些导弹直接毁灭A国的指挥部,从而取得战斗的胜利!当然,A国人民不会允许这样的 ...
 
随机推荐
- Easy Multiple Copy to Clipboard by ZeroClipboard
			
要实现在多个复制按钮复制的功能(具体代码在附件中,路径修改一下就行了): <%@ page language="java" import="java.util.*& ...
 - python如何获取某模块的版本信息
			
1)module.__version__ 2)用dir(module)查看有没有版本信息 3)help(module)
 - Light OJ 1253 Misere Nim (尼姆博弈(2))
			
LightOJ1253 :Misere Nim 时间限制:1000MS 内存限制:32768KByte 64位IO格式:%lld & %llu 描述 Alice and Bob ar ...
 - 删除自带OpenJDK
			
1:rpm -qa|grep jdk 查看当前的jdk情况. 2:yum -y remove java java-1.7.0-openjdk* 卸载openjdk,这个过程中因为依赖原因可能会卸载一些 ...
 - Power Strings(poj 2406)
			
题意:求字符串中循环节出现的次数 KMP!!! #include<cstdio> #include<iostream> #include<cstring> #def ...
 - ubuntu 14.04安装mysql server & mysql client
			
$ sudo apt-get install mysql-server
 - ps -C
			
[root@Nginx_BackUP keepalived]# ps -C nginx PID TTY TIME CMD 3965 ? 00:00:00 nginx 3966 ? 00:00:00 n ...
 - SQLite常用网址
			
英文版SQLite官网: http://www.sqlite.org/rescode.html中文版SQLite官网:http://www.helplib.net/s/sqlite/9/167.sht ...
 - ***阿里云linux 下怎么配置虚拟主机
			
最近有个问题,本人在阿里云买了linux服务器,用wordpress做了一个博客网站www.bravetiger.cn,现在想加一个电商系统进去,假设二级域名为:shop.bravetiger.cn, ...
 - Wcf  for wp8 创建wcf服务 连接wp8模拟器并显示来自wcf服务的接口信息 (一)
			
下载: vs2012 pro for wp8 iis express http://download.microsoft.com/download/B/2/8/B2801FEE-9A60-4AFA-8 ...