Hrbeu 1255

2 篇文章 0 订阅
1 篇文章 0 订阅

题目链接: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;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值