`

守望者的逃离

 
阅读更多

转自<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;
 }
}

 

分享到:
评论

相关推荐

    守望者的逃离贪心解法

    "守望者的逃离贪心解法" 这是一道经典的贪心算法题目,涉及到动态规划和贪心算法两个概念。在这道题目中,我们需要帮助守望者计算如何在最短的时间内逃离荒岛,并输出守望者是否能逃离荒岛和逃离的最短时间或最远...

    1138. 【NOIP2007】守望者的逃离题解

    【NOIP2007】守望者的逃离题解】 这道题目是关于一个角色,我们称其为守望者,需要从一个地方逃离。在这个过程中,守望者有两种移动方式:跑步和使用魔法。跑步的速度固定,而魔法可以瞬间将守望者向前推进一段...

    KKK.rar_贪心算法

    在"守望者逃离"这个场景中,我们可以设想是一个策略或路径规划问题,可能涉及最小化时间、距离或其他资源消耗。 守望者逃离问题的具体细节并未在描述中明确给出,但我们可以根据贪心算法的一般思想进行讨论。在面对...

    C++游戏-守望者的逃离作者陈元舟

    void bj()//背景(来源于 2007NOIP守望者的逃离) { cout恶魔猎手尤迪安野心勃勃.他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。"; cout你在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。"; cout...

    初中语文文摘历史塞林格:麦田里的守望者

    《麦田里的守望者》:一个时代的青春画像与社会镜像 《麦田里的守望者》是美国作家杰罗姆·大卫·塞林格的代表作,自1951年首次出版以来,这部小说便以其独特的叙事风格、深刻的青春主题和对战后美国社会的独到见解...

    麦田里的守望者观后感精选.doc

    《麦田里的守望者》是美国作家J.D.塞林格的一部具有深远影响力的青春小说,它以独特的视角和语言风格,揭示了青少年霍尔顿·考尔菲德的心灵世界,展现了他对成长、社会和人性的困惑与反抗。 霍尔顿是一个处于叛逆期...

    《麦田里的守望者》读后感.doc

    在阅读塞林格的小说《麦田里的守望者》后,我被主人公霍尔顿·考尔菲尔德的经历和内心世界深深打动。这部作品不仅仅是一部关于青少年叛逆的小说,它更深入地探讨了成长的复杂性,以及在现实世界中追求理想的艰难。...

    镜像理论视角下《麦田里的守望者》中主人公霍尔顿的矛盾心理研究.zip

    《麦田里的守望者》是美国作家J.D.塞林格的一部经典小说,而“镜像理论”则是心理学领域的一个重要概念。本研究主要从镜像理论的角度出发,深入探讨了主人公霍尔顿·考尔菲德的内心矛盾与成长困境。 镜像理论最初由...

    NOIP2007Bpuji(普及组复赛)1

    给定初始魔法值M、起始到出口的距离S、岛屿沉没时间T,目标是找出最小时间内的逃离策略或计算守望者能在岛上停留的最长时间。解题需考虑守望者的行动策略,如何时使用闪烁法术以最小化时间。 这三个问题都涉及到...

    noip2007-普及组.pdf

    - 需要计算守望者在岛沉没时间内能否逃离,以及在不能逃离的情况下能走的最远距离。 - 所有活动的时间和距离单位需要统一,并以整数为单位进行计算。 5. 题目实现中需要掌握的关键算法与数据结构: - 数据的输入...

    2007年NOIP普及组复赛试题.doc

    第三题“守望者的逃离(escape.pas/c/cpp)”,虽然未提供具体细节,但根据描述,这可能是关于路径规划或图论的问题。可能需要计算最短路径或者找到某种条件下的最佳逃脱策略。此类问题通常可应用Dijkstra算法或A*搜索...

    NOIP完整普及组试题分析

    3. **守望者的逃离**: - **贪心+模拟**:虽然此题也可以通过动态规划来解决,但在特定条件下,使用贪心算法结合简单的模拟同样能够得到较好的结果。 #### 动态规划 **知识点概述:** 动态规划是一种通过把原问题...

    读《逮香蕉鱼的最佳日子》有感.doc

    西摩的孤独与他对纯真事物的执着,让人联想到塞林格另一部著名作品《麦田里的守望者》中的霍尔顿,他们都是在成人世界中寻找纯真和真实的人,却因此显得格格不入。 小说中,西摩对西比尔讲述香蕉鱼的故事,不仅是与...

    2013届高考语文 乡村很自卑写作素材

    这个素材可以拓展到多个话题,如"麦田守望者",象征着对传统价值的坚守;"冲突",探讨城市化与乡村文化间的张力;"我们正在失去什么",引导思考在现代化进程中,我们是否失去了对自然和文化的敬畏。总的来说,乡村...

Global site tag (gtag.js) - Google Analytics