431. 守望者的逃离(思维,线性DP)
恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。
守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。
为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。
到那时,岛上的所有人都会遇难。
守望者的跑步速度为17m/s,以这样的速度是无法逃离荒岛的。
庆幸的是守望者拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点。
守望者的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复。
现在已知守望者的魔法初值M,他所在的初始位置与岛的出口之间的距离S,岛沉没的时间T。
你的任务是写一个程序帮助守望者计算如何在最短的时间内逃离荒岛,若不能逃出,则输出守望
者在剩下的时间能走的最远距离。
注意:守望者跑步、闪烁或休息活动均以秒(s)为单位,且每次活动的持续时间为整数秒。距离的单位为米(m)。
输入格式
输入文件仅一行,包括空格隔开的三个非负整数M,S,T。
输出格式
输出文件包括两行:
第1行为字符串“Yes”或“No”(区分大小写),即守望者是否能逃离荒岛。
第2行包含一个整数,第一行为“Yes”时表示守望者逃离荒岛的最短时间;第一行为“No”时表示守望者能走的最远距离。
数据范围
1≤T≤3000001≤T≤300000,
0≤M≤10000≤M≤1000,
1≤S≤1081≤S≤108
题解:使用技能的话使用要1秒,恢复10点法力要2.5秒,总共是3.5秒,可以跑60米,平均每秒大于17m,所以能用就用,然后剩下的时间再跑步,用DP枚举当前决策(要么跑,要么用技能)然后取最值即可,详见代码。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e6+5;
int f[maxn];
main() {int m,s,t;cin>>m>>s>>t;for(int i=1; i<=t; i++) {if(m>=10) {f[i]=f[i-1]+60;m-=10;} else {f[i]=f[i-1];m+=4;}}for(int i=1; i<=t; i++)f[i]=max(f[i],f[i-1]+17);bool flag=false;int maxn=0;for(int i=1; i<=t; i++) {if(f[i]>=s) {cout<<"Yes"<<endl;cout<<i<<endl;flag=true;break;}}if(!flag) {cout<<"No"<<endl;cout<<f[t]<<endl;}
}
431. 守望者的逃离(思维,线性DP)相关推荐
- 【每日DP】day 5、P1095 守望者的逃离(好像悟到了DP的真谛)难度⭐⭐★
P1095 守望者的逃离 输入 39 200 4 输出 No 197 输入 36 255 10 输出 Yes 6 好像悟到了DP的真谛(doge) 动态规划,就是动态地维护当前的状态. 本题种状态是距 ...
- 守望者的逃离一道简单的DP
现在的水平做一些简单的dp问题还是能单刷出来了 1144 守望者的逃离 2007年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 ...
- 【简单DP】[NOIP2007 普及组] 守望者的逃离
P1095 [NOIP2007 普及组] 守望者的逃离 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 思路: 独立做出来的一道DP! 一开始我去模拟过程找子问题,然后去找阶 ...
- 【dp】守望者的逃离
妙 题目描述 恶魔猎手尤迪安野心勃勃,他背着了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快 ...
- 0x51.动态规划 - 线性DP(习题详解 × 10)
目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...
- noip普及组2007 守望者的逃离
守望者的逃离 描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这 个荒岛施咒, ...
- [动态规划] 守望者的逃离
今天来给大家讲守望者的逃离这道题 先上题目 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望 ...
- UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)
整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...
- 洛谷P2401 不等数列(线性DP)
本题使用的是线性DP.就是DP数组难以思考,这里我直接给出 dp[i][j]:表示 1 ~ i 这 i 个数 , 其中j 个 " < " 有几种方法 假设我们已经把 n - ...
最新文章
- 如何在 Linux 上录制你的终端操作
- 本地导入Android-PullToRefresh库问题解决
- Application,Session和Cookies的区别
- ubuntu_常用命令_01
- 字节流相关操作,基本字节流的Copy文件
- 关于304缓存 (转沫鱼的前端世界)
- log4j2配置文件详解
- win10永久自动更新服务器,win10彻底永久关闭自动更新的方法【已验证有效】
- 学会理解和更新kali软件源
- 计算机国际会议口头报告范例,国际会议口头报告ppt演讲内容准备模板
- 华为鸿蒙到底是不是安卓系统套了个壳?
- XAI Explainable AI 模型可解释性(3)
- oa html5管理系统模板,OA系统html5整站模板 后台模板
- 牛津3000词汇表(The Oxford 3000™)
- 微信开发 -- 二维码生成
- Bonjour手把手搭建一:mDNS(apple multicastdns.org)
- 英国大不列颠百科全书_也许大不列颠即将来临
- 笨方法学习Python-习题36: 设计和调试
- C#与.NET程序员面试宝典 2.1.6 面试题6:C#中的托管代码是什么
- python selenium根据url获取cookie信息