题目链接:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1255
新手练级篇
TimeLimit: 1 Second MemoryLimit: 32 Megabyte
Totalsubmit: 455 Accepted: 195
Description
你玩过魔兽吗?没玩过不要紧,我会带你去体会一下。里面有很多英雄,当然你只能选择其中一个。每个英雄都有属于自己专有的技能。技能使用时都要消耗一定的魔法值,并对对方造成一定的伤害。技能的使用很有技巧,你必须在有效的魔法值里尽量对对方造成最大的伤害。
打怪练级穿装备也是魔兽的三部曲。
为了使问题简单:假定野怪的生命值是100;你的生命值是100,魔法值是100。打怪的时候你可以选择普通攻击(不消耗魔法值),也可以选择任何一种你能使用的技能。能使用是指你拥有此项技能,并且当前魔法值大于等于使用此技能要使用的魔法值(当然使用完技能你的魔法值会相应的减小)。
为了鼓励广大新手练级,我们送上2件新手必备装备:满蓝光环(拥有它你就会魔法值无限,也就是时时刻刻你的魔法值都处于最大值100)和闪避项链(野怪对你的每次攻击你都能躲避掉,你就不用担心练级时别野怪打死!)。
现在开始新手练级哦!野外正好有一只野怪快点去消灭它!不过要注意:对于新手,你的每个技能只能使用一次普通攻击可以无限使用!
Input
首先给出一个整数n(0<=n<100)占一行,表示你拥有多少技能。接下来有n行,每行有2个正整数ai,bi(0<ai, bi<=100)。表示第i个技能使用消耗多少魔法值,和对野怪的伤害(野怪减少bi的生命值,生命值<=0时,杀怪成功)。bi和ai没有必然的联系,可能ai很大而bi很小。以EOF结束。
Output
对于每组测试数据,输出一个正整数min占一行。表示你合理使用技能,杀死野怪需要的最少的时间。
Sample Input
5
5 21
10 35
18 45
6 10
7 14
2
50 35
60 55
Sample Output
3
12
Hint
在打野怪时:你对野怪的普通攻击和魔法攻击用时都是1秒,普通攻击对野怪的伤害是1。野怪只能进行普通攻击,每次攻击用时也是1秒
Source
Author: xiaoz
水题一道,贪心。
/************************************************************************* > File Name: HEU/1255.cpp > Author: magicyang > Mail:273868471@qq.com > Created Time: 2014年08月29日 星期五 20时57分44秒 ************************************************************************/ #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> #include<vector> using namespace std; struct point { int x,y; }; point a[1005]; bool cmp(point a,point b) { return a.y>b.y; } int main() { int n; while(cin>>n) { for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y; sort(a+1,a+1+n,cmp); int ans=0; int sum=100; for(int i=1;i<=n;i++) { if(sum<=a[i].y) { ans++; sum=0; break; } else { ans++; sum=sum-a[i].y; } } if(sum==0) cout<<ans<<endl; else cout<<ans+sum<<endl; } }