码迷,mamicode.com
首页 > 其他好文 > 详细

[CF Contest] Kana and Dragon Quest game 题解

时间:2020-04-27 22:33:10      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:main   out   line   std   i++   战略   math   amp   for   

对于这道题,我们可以简化为:

kana要打败恶龙,恶龙有h点血。

Kana有两种法术:

  1. V法术——使龙的血量变成\([\frac{h}{2}]+10\)([ ]代表向上取整)。
  2. L法术——使龙的血量变成\(h-10\)

给你龙的血量和使用V法术和L法术的最大次数,问可爱的kana能否杀死恶龙。

战略:

使用尽可能多的V法术,但是不至于让恶龙回血。比如这个:

恶龙10点血。代入\([\frac{h}{2}]+10\)中得龙的血量变成15.

这是绝对不行的。

最后使用完L法术,看能不能把龙打死,如果能,输出“YES”;如果不能,输出“NO”。

AC代码:

#include <iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		int h,v,l;
		cin>>h>>v>>l;
		while((((h/2)+10)<=h)&&(v!=0)){		//使用尽可能多的V法术,但是不至于让恶龙回血。其中((h/2)+10)<=h是来判断是否会给恶龙回血的。
			h/=2;
			h+=10;
			v--;			//使用V法术
		}if((l*10)>=h){			//最后使用完L法术,看能不能把龙打死
			cout<<"YES"<<endl;
		}else{
			cout<<"NO"<<endl;
		}
	}
}

[CF Contest] Kana and Dragon Quest game 题解

标签:main   out   line   std   i++   战略   math   amp   for   

原文地址:https://www.cnblogs.com/Inversentropir-36/p/12790353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!