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 - ...
最新文章
- WIN7 数据源配置问题(32位64位)
- 用MapReduce实现矩阵乘法
- python需要编译器吗_是否需要“使用严格”的Python编译器?
- []End of 2017OI
- .NET Core 3.1 的REST 和gRPC 性能测试
- java如何解压rar文件怎么打开,java解压rar文件
- 0830通用问题解决
- Software Project Management之EVM问题的求解
- @Html.ValidationSummary()作用
- leetcode(120)三角形最小路径之和
- 使用ExMerge工具管理Exchange用户邮箱。
- sql 转html 中文乱码,SqlServer数据库中文乱码问题解决方法
- 经典卷积神经网络---VGG16详解
- java基本的商品管理系统
- SqList *L 和 SqList * L的一些理解以及多重指针的简单应用
- Gilbert Strang的线性代数课程笔记-第一课
- excel锁定计算机,excel表格根据时间锁定如何操作
- Linux——缺少ld-linux.so.2,lbiz.so.1库文件
- IntelliJ IDEA常用设置及快捷键以及自定义
- 请问一下Android Studio如何配置JAVACV 0.8Javacv+2.4.9Opencv 万分感谢