Smiling & Weeping

                    ----寒灯纸上,梨花雨凉,我等风雪又一年

# [NOIP2007 普及组] 守望者的逃离

## 题目背景

恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。

## 题目描述

守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。

为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。

守望者的跑步速度为 $17m/s$,以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在 $1s$ 内移动 $60m$,不过每次使用闪烁法术都会消耗魔法值 $10$ 点。守望者的魔法值恢复的速度为 $4$ 点每秒,只有处在原地休息状态时才能恢复。

现在已知守望者的魔法初值 $M$,他所在的初始位置与岛的出口之间的距离 $S$,岛沉没的时间 $T$。你的任务是写一个程序帮助守望者计算如何在最短的时间内逃离荒岛,若不能逃出,则输出守望者在剩下的时间内能走的最远距离。

注意:守望者跑步、闪烁或休息活动均以秒为单位,且每次活动的持续时间为整数秒。距离的单位为米。

## 输入格式

输入数据共一行三个非负整数,分别表示 $M$,$S$,$T$。

## 输出格式

输出数据共两行。

第一行一个字符串 $\texttt{Yes}$ 或 $\texttt{No}$,即守望者是否能逃离荒岛。

第二行包含一个整数。第一行为 $\texttt{Yes}$ 时表示守望者逃离荒岛的最短时间;第一行为 $\texttt{No}$ 时表示守望者能走的最远距离。

## 样例 #1

### 样例输入 #1

```
39 200 4
```

### 样例输出 #1

```
No
197
```

## 样例 #2

### 样例输入 #2

```
36 255 10
```

### 样例输出 #2

```
Yes
6
```

## 提示

对于 $30\%$ 的数据,$1 \le T \le 10$,$ 1 \le S \le 100$;

对于 $50\%$ 的数据,$1 \le T \le 10^3$,$ 1 \le S \le 10^4$;

对于 $100\%$ 的数据,$1 \le T \le 3\times 10^5$,$0 \le M \le 10^3$,$ 1 \le S \le 10^8$。

详见题目:P1095 [NOIP2007 普及组] 守望者的逃离 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

其实呢,这个问题我们可以进行简化,将恢复法力和行走在一起判断未免有些增加加难度

那么我们不妨放手,各走一边,互不干扰却紧密联系:

对恢复法力DP,和单纯行走DP:

 1 #include<bits/stdc++.h>
2 using namespace std;
3 int m , s , t , dp[300100];
4 int main()
5 {
6 scanf("%d%d%d",&m,&s,&t);
7 for(int i = 1; i <= t; i++)
8 {
9 if(m >= 10)
10 {
11 dp[i] = dp[i-1]+60;
12 m -= 10;
13 }
14 else
15 {
16 dp[i] = dp[i-1];
17 m += 4;
18 }
19 }
20 for(int i = 1; i <= t; i++)
21 {
22 dp[i] = max(dp[i-1]+17 , dp[i]);
23 if(dp[i] > s)
24 {
25 cout << "Yes" << endl;
26 cout << i << endl;
27 return 0;
28 }
29 }
30 cout << "No" << endl;
31 cout << dp[t] << endl;
32 return 0;
33 }

时间仓促,如果有不懂的地方随时@我呦

DP模拟题的更多相关文章

  1. 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中

    题目名称 正确答案  序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...

  2. 51nod 1353 树 | 树形DP经典题!

    51nod 1353 树 | 树形DP好题! 题面 切断一棵树的任意条边,这棵树会变成一棵森林. 现要求森林中每棵树的节点个数不小于k,求有多少种切法. 数据范围:\(n \le 2000\). 题解 ...

  3. noip模拟题题解集

    最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...

  4. 9.28NOIP模拟题

    9.28NOIP模拟题 题目 哈 哈哈 哈哈哈 英文题目与子目录名 ha haha hahaha 单个测试点时间限制 1秒 1秒 1秒 内存限制 256M 128M 64M 测试点数目 10 10 1 ...

  5. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

  6. CSP复赛day2模拟题

    没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...

  7. DP百题练(一)

    目录 DP百题练(一) 线性 DP 简述 Arithmetic Progressions [ZJOI2006]物流运输 LG1095 守望者的逃离 LG1103 书本整理 CH5102 移动服务 LG ...

  8. DP百题练(二)

    目录 DP百题练(二) 区间 DP NOI1995 石子合并 IOI1998 Polygon CH5302 金字塔 USACO06FEB Treats for the Cows G/S LG1043 ...

  9. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  10. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

随机推荐

  1. RoCE多网卡时,报文可以过去,但是回不来

    摘要:虽然网卡是接入RoCE网络,但其实问题本身是单纯路由相关的,所以看的时候,不用关注RoCE,只当做一个独立子网就行了 本文分享自华为云社区<<跟唐老师学习云网络> - RoCE ...

  2. 驱动开发:内核实现SSDT挂钩与摘钩

    在前面的文章<驱动开发:内核解析PE结构导出表>中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表 ...

  3. 记一次618军演压测TPS上不去排查及优化

    本文内容主要介绍,618医药供应链质量组一次军演压测发现的问题及排查优化过程.旨在给大家借鉴参考. 背景 本次军演压测背景是,2B业务线及多个业务侧共同和B中台联合军演. 现象 当压测商品卡片接口的时 ...

  4. PyInstaller 完美打包 Python 脚本,输出结构清晰、便于二次编辑的打包程序

    引入问题 如果我要写一个 Python 项目,打包成 exe 运行(方便在没有 Python 的电脑上使用),我需要打包出的根目录结构美观,没有多余的.杂乱的依赖文件在那里碍眼,而且需要在发现 bug ...

  5. Java革命性ORM框架之快速上手的Jimmer

    Jimmer是一款革命性的ORM框架,它的目标是提供一个简单易用的API,帮助开发人员更加轻松地操作数据库.Jimmer使用了Java 8的新特性,如Lambda表达式和Stream API,使得代码 ...

  6. 曲线艺术编程 coding curves 第六章 平托图 (Pintographs)

    第六章 平托图 (Pintographs) 原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 译者:池中物王二狗( ...

  7. [ESP] 私有版Rainmaker User Mapping

    [ESP] 私有版Rainmaker User Mapping 1. 设备烧录的程序esp-rainmaker/examples/gpio这个demo 我这里是自己的工程,可以参照 idf.py se ...

  8. MariaDB server_audit 审计插件

    具体安装步骤: 1.使用SHOW VARIABLES LIKE 'plugin_dir'; 查出插件安装目录 2.复制 mariadb-5.5.58-linux-x86_64/lib/plugin 下 ...

  9. Java猜数字,猜完一局以后,输入y继续下一次游戏,否则结束

    代码如下: public static void main(String[] args) { String x = ""; do { int random = (int) (Mat ...

  10. Android BottomNavigation底部导航栏使用

    原文地址: Android BottomNavigation底部导航栏使用 - Stars-One的杂货小窝 基本使用 本文侧重点记录一些特殊的样式设置,所以基本使用这里就简单概述一下,详细图文可以去 ...