[NOIP2018]铺设道路
鸡哥炒币亏惨了只能去搬砖,他负责铺设一条长度为n的道路。
铺设道路的主要工作是填平下陷的地表。整段道路可以看作是n块首尾相连的区域,一开始,第i块区域下陷的深度为d_i。
鸡哥每天可以选择一段连续区间[L, R],填充这段区间中的每块区域,让其下陷深度减少 1。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为0。
鸡哥希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变为0。输入格式
输入文件包含两行,第一行包含一个整数n,表示道路的长度。 第二行包含n个整数,相邻两数间用一个空格隔开,第 i 个整数为d_i。
1<=n<=100000, d_i<=10000输出格式
输出文件仅包含一个整数,即最少需要多少天才能完成任务。
Sample Input
6 4 3 2 5 3 5Sample Output
9
解题思路:
规定:大小指的是深度
如果左边的比右边的大,那么填完左边的右边一定已经被填好了
开销是左边的填的天数
下面是图演示:
如果左边比右边小,那么填完左边还要接着填右边(在左边的基础上填右边)
开销是 右深度 - 左深度 的深度开销
下面是图演示:
AC代码如下:
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdio>
#include<map>
#define ll long long
using namespace std;
const int inf = 0x3f3f3f3f;
const int N = 1e5+9;
int s[N];
int main()
{int n;scanf("%d",&n);for(int i = 1;i<=n;i++){scanf("%d",&s[i]);}int sum = s[1];for(int i = 1;i<=n;i++){if(s[i]<s[i+1])sum+=s[i+1]-s[i];}printf("%d\n",sum);
}
[NOIP2018]铺设道路相关推荐
- 【NOIP2013积木大赛,NOIP2018铺设道路】积木大赛(思维,贪心)
题干: 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为nn的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h_ihi. ...
- P5019 [NOIP2018 提高组] 铺设道路(贪心算法)
题目描述 春春是一名道路工程师,负责铺设一条长度为 n 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 n 块首尾相连的区域,一开始,第 ii 块区域下陷的深度为 di . 春 ...
- NOIP2018 DAY1T1 铺设道路(水题)
洛谷传送门 [题目分析] 呵呵,NOIP竟然出原题,是不是刷过积木大赛这道题的人都禁赛啊? 结论很明显,直接找区间最小值减去即可. 不知道nlogn的算法能不能过,反正O(n)即可. 我选择先读完再扫 ...
- 【NOIP2018】【Luogu5019】铺设道路(贪心,差分)
problem 给定一个目标序列,每次操作可以将一个区间全部减1. 求最少操作数使序列变为全0. solution 讲个笑话,NOIP2013中DAY1T1的代码直接复制粘贴都能过这题. 考虑区间减法 ...
- 洛谷 P5019 铺设道路(差分)
嗯... 题目链接:https://www.luogu.org/problem/P5019 首先简化一下题意: 给定一个长为N的数组,每次操作可以选择一个区间减去1,问最少多少次操作可以将数组中的数全 ...
- 铺设道路(洛谷P5019题题解,Java语言描述)
题目要求 题目链接 分析 纯模拟,爆炸,数据量太大,然后参考dalaodalaodalao的博客了解本题的贪心算法,最终AC. AC代码(Java语言描述) import java.io.Buffer ...
- noip2018——题解总结
近期正在疯狂复习某些东西,这篇博客尽量年底更完--(Day2T2除外) 好了,所有的希望都破灭了,原来这就是出题人的素质.--一个被欺骗的可怜 $OIer$ 人生中倒数第三次 $noip$ (Mayb ...
- NOIP2018提高组比赛总结
NOIP2018提高组比赛总结 前言 新赛季,依旧有很多失误. 在些许的遗憾和无奈中,NOIP2018,撒花结束 纵观今年的整一场NOIP,有许多值得总结的地方 正文 NOIP2018初赛 第二次参加 ...
- NOIP2018提高组Day1 解题报告
前言 关于\(NOIP2018\),详见此博客:NOIP2018学军中学游记(11.09~11.11). 这次\(NOIP\ Day1\)的题目听说很简单(毕竟是三道原题),然而我\(T3\)依然悲剧 ...
最新文章
- linux 终端什么意思,请问我的终端显示的是什么意思
- 机器学习的优化目标、期望最大化(Expectation-Maximum, EM)算法、期望最大化(EM)和梯度下降对比
- PostgreSQL 表达式索引 - 语法注意事项
- 第一阶段SCRUM冲刺 03
- Oracle osw监控工具的使用示例
- windowsphone开发_APP软件开发用哪些软件比较好
- 如何移动SQL SERVER的系统数据库
- 大数据 互联网架构阶段 Redis
- java 递归函数_浅谈java递归函数
- 前端学习(648):转换为boolean
- LeetCode 1009. 十进制整数的反码(位运算)
- 采用推理的方法认知单词、CBOW模型
- java订单超时取消设计_PHP如何实现处理过期或者超时订单的,并还原库存
- ELK学习总结(1)——我们为什么要用ELK
- 如何利用nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查
- Linux深入篇之一:配置Nginx Web服务器及多域名主机
- 怎么改自己手机的ip地址
- 破解ESX主机ROOT帐户密码。
- 天源财富:意法半导体推出下一代MEMS加速度计 可用于高性能汽车
- 小米电视不同清晰度图片对比效果
热门文章
- 【Java】计算8+88+888+8888+....前12项的和
- 【树莓派】给树莓派安装中文输入法Fcitx及Google拼音输入法
- C#LeetCode刷题之#709-转换成小写字母(To Lower Case)
- 计费系统设计_Web设计人员的按小时计费与基于价值的定价
- angular2创建应用_如何在Angular 2+应用程序中使用JavaScript库
- 现实世界的数据结构:JavaScript中的表格和图形
- Draconian,自由或保姆状态:Java,C#,C,C ++,Go和Rust中的并发意识形态
- 简易自动电阻测试仪_开始自动测试您的网站的简单方法
- 老公吵架把我扔街上_我是如何从在街上卖食物到为顶尖的技术公司工作的方式-第2部分:获取......
- 适合初学者的安卓开源项目_开源世界中初学者的颠簸之旅