【NOIP2018】D1T1 铺设道路

2024-04-11 19:18
文章标签 道路 noip2018 铺设 d1t1

本文主要是介绍【NOIP2018】D1T1 铺设道路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

@铺设道路@

    • @题目描述@
    • @考场上的思路@
    • @比较正常的题解@
    • @end@


@题目描述@

春春是一名道路工程师,负责铺设一条长度为 n 的道路。
铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n 块首尾相连的区域,一开始,第 i 块区域下陷的深度为 di。

春春每天可以选择一段连续区间 [L,R],填充这段区间中的每块区域,让其下陷深度减少 1。在选择区间时,需要保证,区间内的每块区域在填充前下陷深度均不为 0$。

春春希望你能帮他设计一种方案,可以在最短的时间内将整段道路的下陷深度都变为 0 。

输入
输入文件包含两行,第一行包含一个整数 n,表示道路的长度。 第二行包含 n 个整数,相邻两数间用一个空格隔开,第 i 个整数为 di。

输出
输出文件仅包含一个整数,即最少需要多少天才能完成任务。

输入样例#1:
6
4 3 2 5 3 5
输出样例#1:
9

样例解释1:
一种可行的最佳方案是,依次选择: [1,6]、[1,6]、[1,2]、[1,1]、[4,6]、[4,4]、[4,4]、[6,6]、[6,6]。

数据规模与约定
对于 30% 的数据,1 ≤ n ≤ 10;
对于 70% 的数据,1 ≤ n ≤ 1000;
对于 100% 的数据,1 ≤ n ≤ 100000 , 0 ≤ di ≤ 10000。

@考场上的思路@

我 抄 我 自 己?
虽然这是 NOIP2013 的原题“积木游戏”……然而我并没有做过-_-
所以考场上想了一个比较复杂的解:
显然观察样例,我们可以贪心地这样做:对于某一个区间,选择最小值,将这个区间减去这个最小值,然后把区间按照这个最小值分为两个区间分治求解。
因此,本来想写线段树来着……但是我及时地发现(其实是因为不想写再多想会儿hhhh)区间的最小值是不会变化的。也就是说我们可以不去动态查询区间最小值,而是建成笛卡尔树,再在笛卡尔树上进行操作。

代码(不建议参考,建议继续往后看正常的解):

#include<cstdio>
#include<stack>
using namespace std;
typedef long long ll;
const int MAXN = 100000;
const int MAXD = 10000;
struct node{ll ans; int d;node *ch[2];
}tree[MAXN + 5], *tcnt, *NIL, *root;
void init() {root = NIL = tcnt = 

这篇关于【NOIP2018】D1T1 铺设道路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/894952

相关文章

DoIP-ISO 13400-1 道路车辆-基于互联网协议的诊断通信(DoIP)-第 1 部分:一般信息和用例定义 (1/2)

如下内容基于2011版本的 ISO 13400开展,内容较多,拆分为2篇,此篇为 1/2。 前言 ISO(国际标准化组织)是一个全球范围内的国际标准机构联合体(ISO 成员机构)。国际标准的制备工作通常通过 ISO 技术委员会进行。每个相关成员机构都有权在已建立的技术委员会中代表其利益。与 ISO 保持联系的国际组织、政府和非政府组织也参与这项工作。ISO 与国际电工委员会(IEC)在所有电气

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练

基于百度AIStudio飞桨paddleRS-develop版道路模型开发训练 参考地址:https://aistudio.baidu.com/projectdetail/8271882 基于python35+paddle120+env环境 预测可视化结果: (一)安装环境: 先上传本地下载的源代码PaddleRS-develop.zip 解压PaddleRS-develop.zip到目录

基于飞桨paddle2.6.1+cuda11.7+paddleRS开发版的目标提取-道路数据集训练和预测代码

基于飞桨paddle2.6.1+cuda11.7+paddleRS开发版的目标提取-道路数据集训练和预测代码 预测结果: 预测影像: (一)准备道路数据集 下载数据集地址: https://aistudio.baidu.com/datasetdetail/56961 mass_road.zip —原始地址Url: https://ai-studio-online.bj.bcebos

Leetcode3244. 新增道路查询后的最短距离 II

Every day a Leetcode 题目来源:3244. 新增道路查询后的最短距离 II 解法1:贪心 由于题目保证添加的边(捷径)不会交叉,从贪心的角度看,遇到捷径就走捷径是最优的。所有被跳过的城市都不可能再出现在最短路了,直接删除掉。 代码: /** @lc app=leetcode.cn id=3244 lang=cpp** [3244] 新增道路查询后的最短距离 II*//

Leetcode3243. 新增道路查询后的最短距离 I

Every day a Leetcode 题目来源:3243. 新增道路查询后的最短距离 I 解法1:广度优先搜索 暴力。 每次加边后重新跑一遍 BFS,求出从 0 到 n−1 的最短路。 代码: /** @lc app=leetcode.cn id=3243 lang=cpp** [3243] 新增道路查询后的最短距离 I*/// @lc code=start// 广度优先搜索cla

雾天道路目标检测数据集 8700张 雾天 带标注 voc yolo

随着自动驾驶技术的发展,如何在恶劣天气条件下保证车辆的安全行驶成为了一个重要的研究课题。雾天环境下,能见度降低会严重影响目标检测系统的性能,因此开发针对雾天环境的目标检测算法变得尤为重要。本数据集旨在为研究人员提供一个高质量的、可用于训练和评估雾天道路目标检测模型的数据集。 数据集特点 类型:雾天道路目标检测数据集。格式:VOC和YOLO格式,适用于训练目标检测模型。规模:共包含87

在编程学习的道路上,面对Bug和复杂算法时,我们常常会感到挫折和困惑。以下是一些克服这些挑战的有效方法:

在编程学习的道路上,面对Bug和复杂算法时,我们常常会感到挫折和困惑。以下是一些克服这些挑战的有效方法: 系统化问题解决: 遇到Bug时,首先要从整体入手,系统地分析问题。例如,可以通过逐步调试代码,使用断点和日志来定位错误来源。保持代码简洁,逐步添加新功能,有助于减少Bug的产生。 拆解算法问题: 面对复杂的算法,尝试将其拆解成更小的子问题。首先理解问题的基本概念和要求,然后用伪代码或流程

“复杂天气条件下北京道路图像识别的鲁棒性提升策略”

在复杂天气条件下,北京道路图像识别的鲁棒性提升策略需要综合考虑多种因素,包括天气状况、图像采集设备的性能、图像处理算法的优化等。以下是一些具体的策略: 一、预处理策略 图像去噪: 复杂天气条件下(如雨、雪、雾霾等),图像中常含有大量噪声。通过高斯滤波、中值滤波等算法对图像进行去噪处理,可以减少噪声对图像识别的影响。图像增强: 调整图像的对比度和亮度,以改善图像的视觉效果。在雾霾天气下,可以采用

基于道路标线的城市环境单目定位

文章:Monocular Localization in Urban Environments using Road Markings 作者:Yan Lu Jiawei Huang Yi-Ting Chen Bernd Heisele 编译:点云PCL 本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经允许请勿转载!