守望者的逃离

描述

恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者
在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这
个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步速度为
17m/s,以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不
过每次使用闪烁法术都会消耗魔法值10点。守望者的魔法值恢复的速度为4点/s,只有处在原地
休息状态时才能恢复。 
现在已知守望者的魔法初值M,他所在的初始位置与岛的出口之间的距离S,岛沉没的时间T。

你的任务写写一个程序帮助守望者计算如何在最短的时间内逃离荒岛,若不能逃出,则输出守望
者在剩下的时间能走的最远距离。注意:守望者跑步、闪烁或休息活动均以秒(s)为单位,且每
次活动的持续时间为整数秒。距离的单位为米(m)。

格式

输入格式

在输入文件escape.in仅一行,包括空格隔开的三个非负整数M,S,T。

输出格式

在输出文件escape.out包括两行: 
第1行为字符串“Yes”或“No”(区分大小写),即守望者是否能逃离荒岛。 
第2行包含一个整数。第一行为“Yes”(区分大小写)时表示守望者逃离荒岛的最短时间;
第一行为“No”(区分大小写)时表示守望者能走的最远距离。

样例1

样例输入1

39 200 4

样例输出1

No
197

样例2

样例输入2

36 255 10

样例输出2

Yes
6

限制

1s

提示

30%的数据满足:1<=T<=10,1<=S<=100 
50%的数据满足:1<=T<=1000,1<=S<=10000 
100%的数据满足:1<=T<=300000,0<=M<=1000,1<=S<=10^8

DP

#include <algorithm>
#include <iostream>
using namespace std;
//ifstream cin("escape.in",ios :: in);
//ofstream cout("escape.out",ios :: out);
int m,s,t,MaxDist;
struct DP {int f,g,m;/*dp[t].f:表示在t秒最远距离dp[t].g:表示在t秒只闪烁的最远距离dp[t].m:表示在t秒最大魔法*/
}dp[300001];
int main() {ios :: sync_with_stdio(false);cin >> m >> s >> t;dp[0].f = dp[0].g = 0;dp[0].m = m;for (int i = 1;i <= t;i++) {if (dp[i-1].m >= 10) {  //可以闪烁dp[i].m = dp[i-1].m-10;dp[i].g = dp[i-1].g+60;} else {  //否则休息dp[i].m = dp[i-1].m+4;dp[i].g = dp[i-1].g;}dp[i].f = max(dp[i-1].f+17/*走路*/,dp[i].g/*闪烁*/);}if (dp[t].f < s) {  //不能逃离cout << "No\n" << dp[t].f;return 0;}while (dp[t].f >= s) t--;  //得到最小时间cout << "Yes\n" << ++t;return 0;
}

noip普及组2007 守望者的逃离相关推荐

  1. [洛谷P1095]NOIP2007 普及组T3 守望者的逃离

    问题描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会 ...

  2. NOIP普及组历届真题(1997~2018)

    供大家刷题. 先上快捷的查看方式:NOIP普及组历届真题 第二页 来自洛谷--一个很好的刷题网站 剩下是具体题目和难度以及是第几年的题. P1002 过河卒 NOIp普及组 2002 普及- P100 ...

  3. CSP-J复赛复习题目(NOIP普及组2000-2011)

    CSP-J复赛复习题目(NOIP普及组2000-2011) NOIP普及组复赛(某个不存在的比赛)2000-2011年的题面和样例 可以用来复习CSP-J 建议去OJ上查看并提交 祝大家CSP RP+ ...

  4. 2020.04.08【NOIP普及组】模拟赛C组24 总结

    2020.04.08 2020.04.08 2020.04.08[ N O I P NOIP NOIP普及组]模拟赛 C C C组 24 24 24 总结 概述: 这次比赛我 A K AK AK了,拿 ...

  5. noip普及组 c语言,厉害了,NOIP普及组竟然这样出题,你会做吗?

    原标题:厉害了,NOIP普及组竟然这样出题,你会做吗? NOIP---普及组(答案详解) 全国青少年信息学奥林匹克竞赛(NOIP)到今年已经有34个年头(考试题)了. 该竞赛旨在给那些在中学阶段学习的 ...

  6. NOIP普及组2014--珠心算测验

    NOIP普及组2014–珠心算测验 第一题其实非常简单,如果不去重,就会导致只有三十分 代码如下: #include<bits/stdc++.h> using namespace std; ...

  7. JZOJ(中山纪念中学) 2018.02.02【NOIP普及组】模拟赛D组

    本次题目:2018.02.02[NOIP普及组]模拟赛D组 第一题 题目:第一题 公牛数字 题意: 求题目给出两个数字的乘积 分析: 这题明显只是考察学生的高精可我居然没做对,只要多练习几次,即可AC ...

  8. 纪中集训2020.01.13【NOIP普及组】模拟赛C组总结————My First Time Write Summary

    纪中集训2020.01.13[NOIP普及组]模拟赛C组总结 题目编号 标题 0 [NOIP普及组模拟]取值( numbers.pas/cpp) 1 [NOIP普及组模拟]数对(pairs.pas/c ...

  9. 纪中集训2020.01.16【NOIP普及组】模拟赛C组总结+【0.Matrix】分析

    纪中集训2020.01.16[NOIP普及组]模拟赛C组总结+[0.Matrix]分析 题目: 0.matrix 1.product 2.binary 3.value 巨佬估分:100+100+40+ ...

最新文章

  1. 解决手机訪问站点时总体相对屏幕缩小问题?(已解决)
  2. 计算机系统基础 南京大学,计算机系统基础(一):程序的表示、转换与链接
  3. linux+proc+原理,Linux内核中的Proc文件系统(一)
  4. ospf-cost-FR选路实验
  5. Bash字符串处理(与Java对照) - 19.查找字符的位置
  6. Spring是如何注解的
  7. PHP 每天的总结(1)
  8. 【论文写作】课程指导平台的开发中系统部分代码如何写
  9. LuaForUnity1:Lua介绍与使用
  10. 16 树的子结构(这题多复习)
  11. 无线渗透(四)WPA攻击
  12. java项目获取系统信息
  13. linux字符终端浏览器-----Lynx
  14. 安装apk报错“解析包时出现问题”
  15. qcc300x开发调试笔记
  16. 有哪些看似荒谬,其实很科学的理论@知乎、@量子力学
  17. 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记
  18. 三生三世十里桃花用计算机怎么弄,三生三世十里桃花ios如何用电脑玩 三生三世十里桃花ios电脑教程...
  19. 在Google Play发布应用显示设备数量为0,处理办法
  20. 煤都也要迈向互联网 抚顺将打造东北亚一流的电商产业基地

热门文章

  1. 【Windows】Win 10 无法访问同一网络中Mac 电脑
  2. android调用拨号界面拨打电话功能,Android实现拨打电话功能
  3. 面试要点之——23种设计模式及其应用场景
  4. 轻型载货汽车(离合器及传动轴设计)
  5. 如何理解容器,容器化的由来?它有何优缺点?
  6. 超过1M的网络动图添加到微信表情包
  7. [天池竞赛系列] 历届天池竞赛答辩PPT和视频
  8. Java-对象转型(casting)
  9. 三维模型step(Stp)文件转obj或者stl文件
  10. Redis中使用Lua脚本(续)- Linux下Lua-cjson开源库的安装和使用