【华为编程大赛】洞穴逃生
来源:互联网 发布:cs5软件下载 编辑:程序博客网 时间:2024/05/07 01:21
洞穴逃生
描述:
精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴。精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的。庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。
现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T。你的任务是写一个程序帮助精灵王子计算如何在最短的时间内逃离洞穴。若能逃出,输出"Yes",并输出逃出所用的最短时间;若不能逃出,则输出"No",同时输出精灵王子在剩下的时间内能走的最远距离。注意字母大小写。注意:精灵王子跑步、闪烁或休息活动均以秒(s)为单位。且每次活动的持续时间为整数秒。距离的单位为米(m)。
注:M、S、T均是大于等于0的整数。由输入保证取值合法性,考生不用检查。
提醒:
如果输入的S为0,则说明本身已经在出口,输出应为:Yes 0
如果输入的T为0(且S不为0),则说明已经没有时间了,输出应为:No 0
运行时间限制: 无限制
内存限制: 无限制
输入:
输入格式:
M
S
T
输出:
输出格式:
Yes 逃出洞穴所用的最短时间
或
No 在洞穴塌陷前能逃跑的最远距离
样例输入:
10
50
5
样例输出:
描述:
精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞。在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴。精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的。庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。
现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T。你的任务是写一个程序帮助精灵王子计算如何在最短的时间内逃离洞穴。若能逃出,输出"Yes",并输出逃出所用的最短时间;若不能逃出,则输出"No",同时输出精灵王子在剩下的时间内能走的最远距离。注意字母大小写。注意:精灵王子跑步、闪烁或休息活动均以秒(s)为单位。且每次活动的持续时间为整数秒。距离的单位为米(m)。
注:M、S、T均是大于等于0的整数。由输入保证取值合法性,考生不用检查。
提醒:
如果输入的S为0,则说明本身已经在出口,输出应为:Yes 0
如果输入的T为0(且S不为0),则说明已经没有时间了,输出应为:No 0
运行时间限制: 无限制
内存限制: 无限制
输入:
输入格式:
M
S
T
输出:
输出格式:
Yes 逃出洞穴所用的最短时间
或
No 在洞穴塌陷前能逃跑的最远距离
样例输入:
10
50
5
样例输出:
Yes 1
以下代码未提交OJ验证,欢迎交流指正:
#include <iostream>#include <string>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <queue>using namespace std;int mintime, largestdis;int m,s,t;void dfs(int dis, int m, int time){if (time <= t){largestdis = dis > largestdis?dis:largestdis;}if (dis >= s){mintime = time < mintime?time:mintime;return;}if (m >= 10){dfs(dis+60, m-10, time+1);}else{dfs(dis+17, m, time+1);dfs(dis, m+4, time+1);}}int main() {//int m,s,t;while (cin>>m>>s>>t){mintime = INT_MAX;largestdis = INT_MIN;if(s == 0){cout << "Yes " << 0 << endl;continue;}else if(t ==0 && s != 0){cout << "No " << 0 << endl;continue;}dfs(0,m,0);if (mintime <= t){cout<<"Yes"<<" "<<mintime<<endl;}else cout<<"No"<<" "<<largestdis<<endl;}system("pause");return 0;}
1 0
- 华为编程大赛--洞穴逃生
- 【华为编程大赛】洞穴逃生
- 2014华为编程大赛 洞穴逃生 C语言实现
- 华为上机【洞穴逃生】
- 华为OJ----洞穴逃生
- 华为机试题:洞穴逃生
- 华为机试题:洞穴逃生
- 2014华为机试题15:洞穴逃生
- 华为2014机试试题 - 洞穴逃生
- 华为-洞穴逃生(OJ通过)
- 华为机试——洞穴逃生
- 2015华为机试题:洞穴逃生
- 华为面试题之洞穴逃生
- 洞穴逃生
- 洞穴逃生
- 洞穴逃生
- 洞穴逃生
- C++:洞穴逃生
- 亲身体验MySQL的索引对搜索性能的提升
- Cloudera Manager 和 CDH 4 终极安装
- Centos6.5实现memcached对session共享配置
- 寻找最大和子数组 Find maximum subarrray
- android:windowSoftInputMode属性详解
- 【华为编程大赛】洞穴逃生
- 黑洞漩涡的实现
- memcached完全剖析–1. memcached的基础
- matlab标定工具箱显示出来的外参3D图的高度坐标尺度不对(未解决)
- Android 使用 ftrace
- 高清中国风墨迹墨点ps笔刷
- 根据Repeater某一列的值,将Repeater控件中的某一行改变颜色
- struts.devMode
- 【C语言学习】04__goto,void,extern,sizeof分析