首页 > 其他分享 >DP模拟题

DP模拟题

时间:2023-07-03 23:14:52浏览次数:42  
标签:10 le ## 样例 守望者 dp 模拟题 DP

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 }

 

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

 

标签:10,le,##,样例,守望者,dp,模拟题,DP
From: https://www.cnblogs.com/smiling-weeping-zhr/p/17524349.html

相关文章

  • 软件开放机构、OSI七层协议、TCP协议和UDP协议
    软件开发架构网络编程:我们要基于网络来编写一款B/S或者是C/S架构的软件,比如:ATM,我们只写写的ATM系统都是单机版本的,没有接入网络的系统,别人时无法访问到的#目的:""" 以ATM为例,现在我们想把之前写的ATM系统编程基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,以登......
  • 【学习笔记】DP 优化 1
    矩阵快速幂优化DP用矩阵描述每次转移时DP数组的线性变换,如果每次变换转移相同,可以根据矩阵乘法的结合律先快速幂计算出总的转移矩阵。这里矩阵乘法不只是\((+,\times)\),实际上只要\((\oplus,\otimes)\)满足\(\otimes\)对\(\oplus\)有分配律,\(\otimes\)有结合律,\(\opl......
  • 怎么修改分辨率?在线修改图片分辨率dpi(批量)
    功能地址地址:https://tool.toforu.com/f/img_dpi.html功能说明在线修改图片分辨率,证件照,修改照片dpi,提高图片质量,批量免费。支持以下参数:输入dpi后续功能会有升级,这里只简单介绍!!!功能使用相关知识图片DPI(DotsPerInch)是用于表示图像分辨率的单位,它表示每英寸中包含......
  • Wordpress:siteground下如何提高wordpress网站的加载速度?
    网页加速一般有这几个步骤:1.合并代码(多个js合并成一个,多个css合并成一个)2.优化代码结构(尽量使用Html,尽量不要使用js渲染,尽量将js放置在body尾标之后)3.压缩文件(包括压缩代码、压缩图片、压缩视频)4.使用CDN分发内容5.网页静态化(将经常要访问的网页,做成静态文件html)6.使用缓存(......
  • UDPG and Lung Cancer Metastasis: Unraveling the Relationship
    Lungcancerisoneofthemalignanttumorswithfast-growingmorbidityandmortalityandtheworstprognosis.Thedevelopmentofmolecularbiologyandcellbiologyprovidestargetsforthepreventionandtreatmentoflungcancerandopensupnewareasfor......
  • 关于Java RDP协议实现远程桌面连接的开源项目properjavardp
    最近想学一下在Android平台上实现RDP协议远程连接PC,于是在网上找这方面的资料,发现了一个开源的JavaRDP项目,很不错,拿出来和大家分享一下。关于properjavardp的一些说明,可以到这里看看:http://properjavardp.sourceforge.net/ 。1、首先到http://sourceforge.net/projects/properjav......
  • 模拟题
    P1054[NOIP2005提高组]等价表达式如果我们计算表达式的每一项的系数,再逐一比较,难度较大。所以,我们可以将每个柿子带入10个数,算出10个结果。如果10个结果都相等,就认为两个柿子等价。在计算一个有括号,加减乘幂运算的表达式时,如果直接求解的话,难度仍然较大。但是利用它的优先级......
  • maxscript pathConfig.appendPath 的 bug
    pathConfig.appendPath可以很方便的把2个路径Combine在一起不管你后面带不带斜杠pathConfig.appendPath@"C:\try"@"kle.jpg""C:\try\kle.jpg"pathConfig.appendPath@"C:\try"@"kle.jpg""C:\try\kle.jpg"很酷,然后path......
  • ScheduledThreadPoolExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(bo
    MethodSummary voidexecute(Runnable          Executecommandwithzerorequireddelay. booleangetContinueExistingPeriodicTasksAfterShutdownPolicy()          Getthepolicyonwhethertocontinueexecutingexistingperiodictaskseven......
  • 使用Spring的NamedParameterJdbcTemplate完成DAO操作
    NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。publicObjectqueryForObject(Stringsql,MapparamMap,RowMapperrowMapper)......