【贪心】守望者的逃离

【贪心】守望者的逃离


题目描述


解题思路

这道题的思路是贪心。我们同时进行闪烁魔法和跑步两种状态,然后找出在同一时间内,哪一种状态走得更远,就选择哪一种。当然,当时间不够使用或恢复魔法时,只能选择跑步。

代码

#include<cstdio>  
#include<iostream>  
using namespace std;  
int i,m,s,t,run,magic;
int main()  
{   
    cin>>m>>s>>t;
    for(i=1;i<=t;i++)
    {   
        if(m>=10)
	{  
            m-=10;  
            magic+=60;  
        }//当魔法足够时,使用魔法
	else  
	  m+=4;//否则恢复魔法
        run+=17;   
        if(magic>run)//判断哪个走得更远
         run=magic;
        if(run>=s)
	{  
            cout<<"Yes"<<endl<<i;//如果走完了路程,输出答案,直接退出。
            return 0; 
        }  
    }
    cout<<"No"<<endl<<run;
    return 0;  
} 

谢谢阅读

posted @ 2021-07-19 21:09  基德不基  阅读(47)  评论(0编辑  收藏  举报