zoukankan      html  css  js  c++  java
  • [CF Contest] Kana and Dragon Quest game 题解

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

    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;
    		}
    	}
    }
    
  • 相关阅读:
    日期正则表达式yyyyMMdd
    Markdown语法
    su: Authentication failure问题
    Git初始配置
    layui的layer.open()方法查看缩略图 原图缩放
    入驻博客园三年
    php学习笔记之动态生成一组单选button
    opencv直方图拉伸
    c++ 中const的使用
    LeetCode131:Palindrome Partitioning
  • 原文地址:https://www.cnblogs.com/Inversentropir-36/p/12790353.html
Copyright © 2011-2022 走看看