文档章节

守望者的逃离

mskk
 mskk
发布于 2017/05/04 21:17
字数 758
阅读 1
收藏 0

转自<http://blog.csdn.net/xiaoke5881037/article/details/22307139>

 

//恶魔猎手尤迪安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上
//。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,岛上的所有人都会遇难:守望者的跑步速度,为17m/s,以
//这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法
//值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。
//
//现在已知守望者的魔法初值M,他所在的初始位置与岛的出口之间的距离S,岛沉没的时间T。你的任务是写一个程序帮助守望者计算如何在最短
//的时间内逃离荒岛,若不能逃出,则输出守望者在剩下的时间内能走的最远距离。注意:守望者跑步、闪烁或休息活动均以秒(s)为单位。且每次
//活动的持续时间为整数秒。距离的单位为米(m)。
//提示:
//
//30%的数据满足: 1 <= t<= 10<>, 1 <=s<= 100 <> <=s<= 100 <><= t<= 10<>
//50%的数据满足: 1 <= t <= 1000<>, 1 <= s <= 10000<> <= s <= 10000<><= t <= 1000<>
//100%的数据满足: 1 <= t <= 300000<>, 0 <= m<=1000 1 <=s <= 10^8 <><= m<=1000 1 <=s <= 10^8 <><= t <= 300000<>


  
/*
功能:判断守望者是否能够逃出荒岛
    
输入参数:
   unsigned int uiMagic:无符号整型,守望者的初始魔法值
  unsigned int uiDistance:无符号整型,守望者所在的初始位置与岛出口之间的距离。
  unsigned int uiSec:无符号整型,岛沉没需要的时间,单位为秒
输出参数(指针指向的内存区域保证有效):
   char *pRstOut:输出守望者能否逃出荒岛,若能逃出输出“Yes”,不能输出“No”,注意大小写。
  unsigned int *puiMaxDistance:若守望者能逃出荒岛,输出逃出荒岛所用的最短时间,
         不能逃出则输出守望者能逃出的最大距离。
返回值:
  void

*/

 

1、跑的人每秒都在跑
2、当闪烁的人发现能闪时就闪,并判断此时谁快,如果闪的快,这时候跑的人要和闪烁的人站到一个起跑线上继续跑
3、每秒都判断是否已经逃离岛
个人想法,欢迎指正:)

void HelpWatcherEscape(unsigned int uiMagic, unsigned int uiDistance, unsigned int uiSec,
        char *pRstOut, unsigned int *puiMaxDistance)
{

 int m_iMagic = uiMagic;
 int m_iDistance = uiDistance;
 int m_iS = 0;  //闪烁的人累计走过的距离
 int m_iS2 = 0;  //跑步的人累计走过的距离
 
 for (int m_iTime = 1; m_iTime <= uiSec; m_iTime++)
 {
  if (m_iMagic >= 10)
  {
           m_iS += 60;
           m_iMagic -= 10;
  }
  else
  {
   m_iMagic += 4;
  }
  if (m_iS2 + 17 > m_iS)
  {
            m_iS2 += 17;
  }
  else
  {
            m_iS2 = m_iS;
  }
  if (m_iS2 >= m_iDistance)
  {
   strncpy(pRstOut,"Yes",sizeof("Yes"));
   *puiMaxDistance = m_iTime;
   break;
  }
 }
 if (m_iS2 < m_iDistance)
 {
  strncpy(pRstOut,"No",sizeof("No"));
  *puiMaxDistance = m_iS2;
 }
}

 

本文转载自:http://gaylord.iteye.com/blog/2229771

共有 人打赏支持
mskk
粉丝 3
博文 156
码字总数 3099
作品 0
昆山
程序员
私信 提问
试解2014ACM大赛赛题守望者逃离荒岛问题

题目如下: 恶魔猎手尤迫安野心勃勃.他背叛了暗夜精灵,率深藏在海底的那加企图叛变:守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施...

Kukucao
02/09
0
0
数据解析守望先锋直播现状,人气不足如何守望!

团队第一人称射击游戏 《守望先锋(Overwatch)》是一款团队第一人称射击游戏,游戏中的英雄都身处于一个充满纷争的时代。 游戏人物的定位大致分为四种,分别为突击,防御,重装以及辅助。玩...

直播观察
2017/05/26
0
0
智能识别病虫害,「农博创新」的这款软件可以帮助你

我国是一个农业大国,农业对社会经济的持续发展有着重要影响,病虫害是导致农作物减产降质的一个主要原因。农作物病虫害种类多,发生差异大、监测预报难度大,是生产管理的难点,一旦大面积爆...

农博创新
11/01
0
0
CGU 2017 APAC完美落幕 五国争霸收官之战!

2017年12月17日,武汉理工大学南湖校区体育中心,CGU 2017 APAC迎来了各个游戏板块的冠军之战。 CGU是中国电竞第一首选硬件品牌、游戏硬件领创者七彩虹(COLORFUL)主办,并独立策划执行的游戏...

zabenbrdit36243qnjx1
2017/12/18
0
0
HTML5快速发展 开发者有热情更有激情

  【IT168资讯】在开发者中,尽管HTML5目前并不是那么完美,但是他们对HTML5技术的热情却日益高涨。不仅有开发者们在技术方面不断的应用和探索,整个互联网产业界对HTML5的推动更是状况空前...

it168网站
2013/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

get和post详解

get和post是表单提交的两种方式,get请求数据通过域名后缀URL传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。get是通过URL传递表单值,post通过URL看不到表单...

青衣霓裳
12分钟前
0
0
linux-如何快速替换IP

在Linux在做高可用的时候,经常会使用到虚拟IP。在windows上一个网卡可以配置两个IP,在Linux直接使用ip命令就可以添加了。 添加 ip address add 192.168.1.200/24 broadcast 192.168.1.255 ...

Linux就该这么学
16分钟前
0
0
Unix-Linux 编程实践教程 第五章 小结

设备文件中用逗号连接起来的两个数字为主设备号和从设备号。主设备号确定实际的设备驱动程序,从设备号作为参数。 如下图中的,主设备号-4,从设备号-2 设备文件中的i-node存储的是指向内核子...

Explorer0
19分钟前
0
0
virtual box centos7 挂载进行文件和共享使用说明

一、virtualbox共享文件夹无访问权限问题解决方法 (转载 http://www.cnblogs.com/zhuguanhao/p/6192777.html) 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题...

mbzhong
21分钟前
0
0
Rabbitmq---消息队列

一 . MQ:message queue   消息队列的作用:   1 通信解耦   2 高峰限流 原理分析: 一开始,认证系统是强耦合的,A系统传递认证系统消息接收计算结果的过程中   1 传给认证系统   2 认...

Ala6
26分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部