解题思路:
本题使用贪心去解,如果走路比使用闪烁块就走路,如果闪烁快就直接用魔法
在最开始时,如果有魔法就先把魔法用到不能再用为止
用光魔法后开始比较走路与等待回魔+闪烁谁快
将两种状态同时运行,当某个时间点等待回魔+闪烁比走路要块的话就直接使用等待回魔+闪烁,而后继续同时运行知道时间耗尽或逃跑成功
注意事项:闪烁也是要时间的!
参考代码:
#includeusing namespace std; int main() { int m,s,t; cin>>m>>s>>t; int away=0; int time=0; while(m>=10)//直接使用闪烁 { m-=10; time++; away+=60; if(away>=s)//直接闪烁就可以逃离 { cout<<"Yes"<<endl<<time; return 0; } if(time==t)//直接闪烁都不能逃离 { cout<<"No"<<endl<<away; return 0; } } int magic=0;//闪烁移动的距离 int run=0;//跑步移动的距离 for(time++;time=10)//如果可以闪烁了就把闪烁移动的距离加上 { magic+=60; m-=10; } if(magic>run+(magic/60)*17&&time+(magic/60)=s) { cout<<"Yes"<<endl<<time; return 0; } if(time==t) { cout<<"No"<<endl<<away+run; return 0; } } return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:703 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:657 |
简单的a+b (C语言代码)浏览:783 |
【数组的距离】 (C语言代码)浏览:787 |
小明A+B (C语言代码)浏览:1316 |
【蟠桃记】 (C语言代码)浏览:697 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:541 |
1025题解浏览:796 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1100 |
C语言训练-自守数问题 (C语言代码)浏览:798 |