时间限制: 1 Sec 内存限制: 128 MB

[提交][状态][讨论版]
题目描述
春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi。

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

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

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

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

数据规模:

其中一种可行的最佳方案,依次选择 [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。

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

下面是对样例数据的解释:

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

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

样例输入

5
2 3 4 1 2

样例输出

5

提示
一.朴素解法:
ans = 0;
如果开始只有1堆积木,比如是2
那么 ans += 2 - 0;
有两堆,2,3
ans += 2-0+3-2;
如果有三堆,2,3,2
ans += 2-0+3-2
四堆:2,3,2,3
ans += 2-0+3-2+3-2
.。。
所以每一堆的只与它前一堆有关,且只有大于前一堆时才需要更新答案,且是加两者之差
二.递归解法:
给的序列还原成全部是0的序列:
每次在序列中找最小,根据最小的位置可以将原序列划分为两个子序列,然后子序列继续找最小,继续划分,每次找到最小,将找最小序列全部减去这个最小值(已经为0的不再减)

AC_code:

朴素解法:

#include <stdio.h>
using namespace std;
typedef long long LL;
int main()
{int n;scanf("%d",&n);int tmp = 0,sum = 0;int x;for(int i = 0; i < n; i++){scanf("%d",&x);if(x > tmp) sum += x-tmp;tmp = x;}printf("%d\n",sum);return 0;
}

递归解法:

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5+5;
int a[MAXN];
int ans;
void solve(int l,int r)
{if(l > r) return;int minx = 1e5,pos;for(int i = l; i <= r; i++){if(a[i] < minx){minx = a[i];pos = i;}}for(int i = l; i <= r; i++){if(a[i])a[i] -= minx;}ans += minx;solve(l,pos-1);solve(pos+1,r);
}
int main()
{int n;scanf("%d",&n);for(int i = 1; i <= n; i++){scanf("%d",&a[i]);}ans = 0;solve(1,n);printf("%d\n",ans);return 0;
}

问题 F: 积木大赛(模拟)相关推荐

  1. 2011年全国软件大赛模拟题及参考答案(Java高职组)

    2011年全国软件大赛模拟题及参考答案(Java高职组) 不是官方的答案,如有不妥,请指出. 2011 模拟 java 高职 注意: 本套模拟题主要模拟命题形式与考核范围.真实竞赛题的数量.难度可能与 ...

  2. 全国高等院校英语能力大赛模拟题

    全国高等院校英语能力大赛模拟题 竞赛官网:https://www.eaedu.org.cn/index.html 解答是自己做的,存在部分错误,仅供参考 单选题 1. In our class the ...

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

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

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

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

  5. CODEVS 3288 积木大赛

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

  6. 【洛谷 1969】积木大赛

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

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

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

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

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

  9. python网球比赛模拟主持稿_主持人大赛模拟主持稿

    主持人大赛模拟主持稿 篇一: 尊敬的评委在座的同学们,大家晚上好(鞠躬) 非常荣幸能站在这里,我是来自 ********* ,向大家问 好(鞠躬) 第二环节模拟主持我抽到的是体育类, 所以我将以 20 ...

最新文章

  1. 匿名内部类,就是内部类的简写格式。
  2. Java中ListE对象赋值问题(引用传递和值传递)
  3. 【learning】洲阁筛
  4. Node.js 根本没有这样搞性能优化的?
  5. 第十届蓝桥杯大赛青少年创意编程C++组省赛 第2题 小猫吃鱼
  6. 64位linux安装mysql数据库吗_Linux下安装Mysql数据库
  7. Nginx基本数据结构之ngx_hash_wildcard_t
  8. 以TikTok为切入的海外流量打法?
  9. HDU2087 剪花布条【KMP】
  10. cent os 查看服务器信息
  11. LeetCode算法题-House Robber(Java实现)
  12. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试考参试题(含答案)章节一.doc...
  13. matlab简介,Matlab简介及各历史版本
  14. Matlab论文插图绘制模板第19期—散点折线图
  15. python怎么测试opencv安装是否成功_测试opencv安装成功
  16. 《非暴力沟通》学习笔记
  17. 流水灯c语言程序 流程图,流水灯流程图(单片机流水灯流程图)
  18. 趣味程序设计_出售金鱼
  19. 一度智信:拼多多开店必备条件
  20. currentTimeMillis()的解释

热门文章

  1. 最优化方法外罚函数法Matlab,最优化方法 第三篇(罚函数法).pdf
  2. 你能体会那种写 Python 时不用 import 的幸福吗?
  3. 靠 GitHub 打赏谋生的程序员,他们是怎么做的?
  4. 分析 HTTP,TCP 的长连接和短连接以及 sock
  5. 数据处理奇技巧——python数据处理小技能
  6. 大家都在看的公众号是哪几个?
  7. zwpython_零起点Python大数据与量化交易
  8. oracle分页查询前10条,Oracle查询前十条记录及分页查询(第5条到第10记录)
  9. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8712和8732E电磁流量计变送器的功能规格...
  10. Deeplearnng.AI第四部分第二周、经典网络