洞穴逃生

洞穴逃生 
描述: 
精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴。精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的。庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。 
现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T。你的任务是写一个程序帮助精灵王子计算如何在最短的时间内逃离洞穴。若能逃出,输出"Yes",并输出逃出所用的最短时间;若不能逃出,则输出"No",同时输出精灵王子在剩下的时间内能走的最远距离。注意字母大小写。注意:精灵王子跑步、闪烁或休息活动均以秒(s)为单位。且每次活动的持续时间为整数秒。距离的单位为米(m)。 
注:M、S、T均是大于等于0的整数。由输入保证取值合法性,考生不用检查。 
提醒: 
如果输入的S为0,则说明本身已经在出口,输出应为:Yes

如果输入的T为0(且S不为0),则说明已经没有时间了,输出应为:No 0 
运行时间限制:
无限制 
内存限制:
无限制 
输入: 
输入格式: 



输出: 
输出格式: 
Yes
逃出洞穴所用的最短时间 
或 
No
在洞穴塌陷前能逃跑的最远距离 
样例输入: 
10 
50 

样例输出:

Yes 1

思路:贪心思想,每一秒都选择可以走最远的距离的方法。所以我们每次采用两种方法来前进,最后选择能走最远的那个方法。

比如在如果在3秒内洞没塌,则在3s内跑步前进了51m,而是用魔法前进60故,采用魔法。


 1 #include <iostream>
2 using std::endl;
3 using std::cin;
4 using std::cout;
5 int main()
6 {
7 int M,S,T;
8 cin >> M >> S >> T;
9 int distance=0;
10 int flashdistance=0;
11 int i;
12 if(S==0)
13 {
14 cout << "Yes " << 0 << endl;
15 }else if(T==0 && S!=0)
16 {
17 cout << "No " << 0 << endl;
18 }else{
19 for(i=1;i<=T;++i)
20 {
21 distance+=17;
22 if(M<10)
23 {
24 M+=4;
25 }else{
26 flashdistance+=60;
27 M-=10;
28 }
29 if(distance<flashdistance)
30 distance = flashdistance;
31 if(distance >= S)
32 break;
33 }
34 if(i<=T)
35 cout << "Yes " << i << endl;
36 else
37 cout << "No " << distance << endl;
38 }
39 return 0;
40 }

Node:code from internate.

时间: 2024-10-04 01:21:25

洞穴逃生的相关文章

【华为编程大赛】洞穴逃生

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

华为2014机试试题 - 洞穴逃生

精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能无法逃出洞穴.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.你的任务是写一个程序帮

第六届华为创新杯编程大赛-进阶1第1轮

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

基于HBase的手机数据备份系统

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

fread读取结构体注意事项

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

txt 转为 csv 可以通用的 工具

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

校招回顾录---华为篇(下)

2015届[2014年夏]华为公司校招机试中级题试水 本文由CSDN-蚍蜉撼青松[主页:http://blog.csdn.net/howeverpf]原创,转载请注明出处! 写在前面: 当前华为公司的一次机试.共三道不同难度的编程题(当中,0基础题60分.中级题100分.高级题160分),机试成绩>=60就可以參加下一轮面试. 一定程度上说.仅仅要全然做对0基础题,就行通过机试的考验.可是,可以部分或全然完毕后面的中高级题,一定会为你后面的面试增色不少. 写作本文的目的有两个.一是对本次參加的华

华为上机题汇总(二十二)

华为上机题汇总(二十二) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总二十二 目录 第一百零六题 第一百零七题 第一百零八题 第一百零九题 第一百一十题 第一百一十一题 第一百零六题 106.去饭店吃饭 一个男人3元 一个女人2元 一个小孩1元 现输入总人数和总花费 #include <iostream> #include <vector> using namespace std; void display(const vector<

第六华为创新杯程序设计大赛-先进1文章1圆

洞穴逃生 叙述性说明: 精灵王子冒险.在探险的过程中,他进入一个神奇的洞穴.在洞穴深处.精灵王子不小心碰到隐藏的洞穴器官,整个洞穴将很快崩溃,精灵王子必须从洞穴尽可能快地逃离.运行速度的精灵王子17m/s,以这种速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术.可在1s内移动60m,只是每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,仅仅有处在原地歇息状态时才干恢复. 如今已知精灵王子的魔法初值M.他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.