「CF230A」龙的战争(详细分析)

博客介绍了CF230A问题的详细解决过程,主要内容包括Kirito如何在MMORPG游戏中通过与n条龙战斗来升级,以及如何利用贪心策略决定战斗顺序。通过排序龙的力量值,优先挑战力量最小的龙以获取最大的力量提升,以此判断Kirito是否能战胜所有龙并存活下来。
摘要由CSDN通过智能技术生成

题目描述

Kirito现在被困在一个MMORPG游戏当中,为了离开这个游戏,他现在必须和n条龙进行战斗,Kirito和这n头龙都有一个力量值,用整数表示,Kirito最初的力量值为s。如果在Kirito和第i头龙(1 ≤ i ≤ n)的对决当中,Kirito的力量不大于龙的力量xi,那么,Kirito将输掉对决并死亡。如果Kirito的力量大于龙的力量,那么,Kirito将打败这条龙并且升级获得额外的力量提升。
现在,Kirito可以按照任意顺序和这些龙进行决斗,请问,Kirito能否离开这个游戏,即Kirito能够战胜所有的n头龙并且没有死亡。

输入格式:
题目包含多组输入
第一行输入两个数字s和n(1 ≤s ≤ 1e4, 1 ≤ n≤ 1e3),表示Kirito的初始力量值和龙的数量。
接下来n行,每行输入两个数字xi和yi(1 ≤xi ≤ 1e4, 0 ≤ yi≤ 1e4),表示第i头龙的力量以及Kirito击败这头龙能够获得的额外力量值。

输出格式:
如果Kirito能够离开这个游戏,则输出”YES”,否则,则输出”NO”.

样例

样例输入:
2 2
1 99
100 0
样例输出:
YES

样例输入:
10 1
100 100
样例输出:
NO

算法分析

这一题是一道非常简单的贪心题,只需要一个简单的排序,就可以完成。
最佳贪心策略就是比较X i ,最小的最先做,从而积累Y i

思路很简单,代码量也不多。

代码

#include<cstdio>
#include<algorithm>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值