洛谷——P1969 积木大赛

题目描述

春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi。

在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[l, r],然后将第第 L 块到第 R 块之间(含第 L 块和第 R 块)所有积木的高度分别增加1。

小 M 是个聪明的小朋友,她很快想出了建造大厦的最佳策略,使得建造所需的操作次数最少。但她不是一个勤于动手的孩子,所以想请你帮忙实现这个策略,并求出最少的操作次数。

输入输出格式

输入格式:

输入文件为 block.in

输入包含两行,第一行包含一个整数n,表示大厦的宽度。

第二行包含n个整数,第i个整数为hi 。

输出格式:

输出文件为 block.out

仅一行,即建造所需的最少操作数。

输入输出样例

输入样例#1:

5
2 3 4 1 2

输出样例#1:

5

说明

【样例解释】

其中一种可行的最佳方案,依次选择

[1,5] [1,3] [2,3] [3,3] [5,5]

【数据范围】

对于 30%的数据,有1 ≤ n ≤ 10;

对于 70%的数据,有1 ≤ n ≤ 1000;

对于 100%的数据,有1 ≤ n ≤ 100000,0 ≤ hi≤ 10000。

思路:

刚看到这个题的时候,我想是这样想的。由于我发现这样一个规律:对于拼一个积木来说,我们在处理一个积木的时候,先把相同高度的部分同时增高,然后再来看不能同时增高的部分,我们可以发现不能增高的情况是这样的:如果两个积木之间有一个比这两个积木都小得积木,那么即使这两块积木一样高也不能一块使他们增高,而要分开。所以我们就把这道题转化成求每一段区间的最大值与最小值将他们两个相减,这样得出来的就是最终结果。

但由于本人是蒟蒻,我不知道怎么求每一段的最大值以最小值,所以我们又可以发现这样一个规律:对于邱最大值与最小值相减的过程就相当于:如果一个值比他后面的值大,这样的最大值与最小值的差一定是每一个只对应相减得出的值。

  • 是不是很简单?来直接看看代码吧!
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 100001
using namespace std;
int n,hi[N],ans;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&hi[i]);if(hi[i]>hi[i-1]) ans+=hi[i]-hi[i-1];}printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/z360/p/6920477.html

P1969 积木大赛相关推荐

  1. 洛谷 P1969 积木大赛 —— 水题

    题目:https://www.luogu.org/problemnew/show/P1969 看每个高度和前面的关系即可. 代码如下: #include<iostream> #includ ...

  2. AC日记——积木大赛 洛谷 P1969

    题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没 ...

  3. P1969 [NOIP2013 提高组] 积木大赛(差分+贪心)

    本题相较于增减序列更加简单 刚开始给我们一个全是0的数组,求变到目标数组的最小操作数 逆向思维一下,给我们一个数组,求让他变为全为0的数组   的最小操作数 那么只需要记录一下  差分数组中所有> ...

  4. CODEVS 3288 积木大赛

    [题目描述 Description] 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第i块积木的最终 ...

  5. 问题 F: 积木大赛(模拟)

    时间限制: 1 Sec 内存限制: 128 MB [提交][状态][讨论版] 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成 ...

  6. 【洛谷 1969】积木大赛

    题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为nn的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h_ih i ​     ...

  7. 春春幼儿园堆积木大赛_春云边车

    春春幼儿园堆积木大赛 我有一个部署到基于NetflixOSS的云的应用程序,该应用程序具有以下结构: 本质上是一种将信息持久保存到Cassandra集群的服务. 所有应用程序都已注册到Eureka – ...

  8. 【NOIP2013积木大赛,NOIP2018铺设道路】积木大赛(思维,贪心)

    题干: 题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为nn的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是h_ihi​. ...

  9. 一些根本不用数据结构的题。。(积木大赛、焚风现象)

    我发现我学数据结构学傻啦..看题和数据范围就会想到些数据结构... 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木 ...

  10. XYOj1264: 积木大赛

    题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没 ...

最新文章

  1. CZoneSoft出品: 音频视频在线录制系列之 AV留言本 简介
  2. 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案20120319...
  3. 为什么做软件类项目,会出现人多,事少,工作量大的情况?
  4. Scala sbt 添加国内镜像
  5. Java8 Stream详解~归约(reduce)
  6. Google 高薪争夺 Rust 人才,将用 Rust 重构关键组件!
  7. 7.2.Zeng_Cache(3) --- 前端
  8. fatal error: libmemcached/memcached.h: No such file or directory
  9. C# 多线程BackgroundWorker
  10. 开发过程中沟通的重要性
  11. Mac 下pyppeteer下载Chromium慢 / pyppeteer下载慢 / Chromium下载慢 / Chromium下载地址
  12. PostGis创建空间数据库方法
  13. win7下安装配置theano详解
  14. 数据结构 三:树(Tree)
  15. 数字0~9的手写识别
  16. 关闭英文拼写检查,关闭xml验证
  17. 无障碍建筑设计相关术语
  18. JDBC:JDBC工具类JDBCUtils
  19. 谷歌工程师阴谋干掉IE6的尘封往事
  20. std::vector中 begin()、end()、front()、back()的区别

热门文章

  1. 复杂车间调度问题三维析取图建模系列预告
  2. C++类的定义要注意最后的分号不要丢了
  3. 【事件驱动】【数码管识别】 封装成DLL的函数的梳理
  4. Python-os.mkdir() 方法
  5. python绘图坐标轴|刻度值|刻度||标题设置
  6. 利用ArcGIS Pro对疫情数据进行分析并可视化
  7. ENVI 自带的6种遥感图像分类算法比较
  8. 龙卷风视频巨型计算机,[动图]相机捕捉巨大“龙卷风”太阳表面旋转
  9. Hexo+GitHub搭建个人博客
  10. jdk8 mysql安装教程_Linux系统:centos7下安装Jdk8、Tomcat8.5、MySQL5.7环境