原题链接:https://www.luogu.org/problemnew/show/P1095

守望者的逃离

题目描述

恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步速度为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:

39 200 4

输出样例#1:

No
197

输入样例#2:

36 255 10

输出样例#2:

Yes
6

说明

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.

题解

显然,闪烁法术比较划算,我们可以疯狂闪,等到最后一段路特判一下是跑还是闪,代码量据说很大。

所以我们将闪和跑分开处理,先处理只用闪烁法术的情况,再在这个基础上讨论使用跑步是否更优,取一波max。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=3e5+5;
int m,s,t,dp[M];
void in()
{scanf("%d%d%d",&m,&s,&t);}
void ac()
{for(int i=1;i<=t;++i)if(m>=10)dp[i]=dp[i-1]+60,m-=10;else dp[i]=dp[i-1],m+=4;for(int i=1;i<=t;++i){dp[i]=max(dp[i],dp[i-1]+17);if(dp[i]>=s)printf("Yes\n%d",i),exit(0);}printf("No\n%d",dp[t]);
}
int main()
{in();ac();return 0;
}

Luogu1095 守望者的逃离相关推荐

  1. 【每日DP】day 5、P1095 守望者的逃离(好像悟到了DP的真谛)难度⭐⭐★

    P1095 守望者的逃离 输入 39 200 4 输出 No 197 输入 36 255 10 输出 Yes 6 好像悟到了DP的真谛(doge) 动态规划,就是动态地维护当前的状态. 本题种状态是距 ...

  2. [sicily]1484. 守望者的逃离

    1484. 守望者的逃离 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领 ...

  3. NOIP200703守望者的逃离

    链接 题目地址 [NOIP2007 普及组] 守望者的逃离 题目背景 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变. 题目描述 守望者在与尤迪安的交锋中遭遇了围杀,被困在一 ...

  4. noip普及组2007 守望者的逃离

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

  5. 7.5 ZUFEIOJ E: 守望者的逃离 贪心

    问题 E: 守望者的逃离-NOIP2007PJT3 时间限制: 1 Sec   内存限制: 128 MB 提交: 23   解决: 9 [ 提交][ 状态][ 讨论版][命题人: 外部导入] 题目描述 ...

  6. noip2007 守望者的逃离 (贪心)

    A1161. 守望者的逃离 时间限制: 1.0s   内存限制: 256.0MB   总提交次数: 590   AC次数: 181   平均分: 57.25 将本题分享到:         查看未格式 ...

  7. Sicily 1484. 守望者的逃离

    1484. 守望者的逃离 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领 ...

  8. NOIP200703守望者的逃离 题解

    NOIP200703守望者的逃离 题解 题目 链接 字面描述 题目背景 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 思路 ...

  9. 守望者的逃离 贪心 动态规划

    守望者的逃离 动态规划 贪心 题目链接https://www.luogu.com.cn/problem/P1095 题目描述: 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变 ...

  10. [动态规划] 守望者的逃离

    今天来给大家讲守望者的逃离这道题 先上题目 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望 ...

最新文章

  1. Windows 系统下设置Nodejs NPM全局路径
  2. WINCE6.0远程桌面显示修改
  3. 输入输出--公用继承
  4. java 网络传输中发送byte[]和接收到的不一致_为什么JAVA对象需要实现序列化?
  5. Report framework entry point CRM_BSP_OIC_1O_SEARCH_FROM_RF
  6. 怎么改HTML表单数据,form设置的数据怎么添加到table
  7. 你必须『收藏』的Github技巧
  8. Uni-G/ The University of Glasgow (Uni-G) ECG Analysis Program
  9. 解析FL Studio冻结小技巧
  10. PHP发微信消息必须开网吗,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题...
  11. 中职学校计算机基础的重要性,中职非计算机专业学生计算机基础教学浅探
  12. PTA L1-088 静静的推荐
  13. 图像情感识别研究方向
  14. windows7环境下theano安装
  15. NUAA-编译原理-语法分析
  16. 第一辑 回家的路--谁是聪明人
  17. python输出给定字符串中字母a出现的次数_[Python] 输出a字符串出现频率最高的字母,用到了list中的排序和Iambda...
  18. YOLOv5/v7 更换骨干网络之 MobileNetV3
  19. 经济学入门必看:绝对经典的20部影片!
  20. swustoj289消灭老鼠-利用队列解决简单的约瑟夫环

热门文章

  1. 关于python 输出中文
  2. 23种经典设计模式UML类图汇总
  3. 高级软件工程2017第2次作业
  4. 面空间数据中网格索引和四叉树索引的结合及优化的一种方案
  5. memcached在项目中的应用
  6. 在ios中运用core animation暂停和继续动画
  7. Repeater思路整理
  8. Gartner预测:2010年个人电脑销售增长两成
  9. 如何在C#中读写INI文件
  10. Spring AOP实现及运行期调用原理分析