zzulioj2400 小G的日常之接雨水 预处理

[算法练习]雨水收集问题 Description 给定n个非负整数,表示直方图的方柱的高度,同时,每个方柱的宽度假定都为1。若使用这样形状的容器收集雨水,可以盛多少水量? Input 输入一个整数n,表示有n条方柱接下来输入n个整数,分别表示方柱的高度 Output 输出这样的容器所盛的水量                                      (图源自网络) 想法 从最底层开始计算... 阅读详情

2400: 小G的日常之接雨水

时间限制: 1 Sec  内存限制: 128 MB
提交: 137  解决: 39
[提交] [状态] [讨论版] [命题人:541507070139]

题目描述

下雨了,小G想到了一个问题,给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
你能帮帮小G吗? 
 
上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 

输入

第一行,输入一个数n(1 <= n <= 1,000,000)
第二行,输入n个数 (这n个数小于1e9) 

输出

可以接多少雨水。 

样例输入 Copy

12
0 1 0 2 1 0 1 3 2 1 2 1

样例输出 Copy

6

思路:

我们预处理出每个柱子左右的最高柱子的长度,然后根据木桶理论用较短的那个减去当前的柱子的高度即是当前柱子的盛水量,当然,如果他的某一边没有比他更高的,那么这个高度很明显就是他自己

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 10;
int a[maxn],b[maxn],c[maxn];
int main()
{
    int n;
    scanf("%d",&n);
    for (int i = 1;i <= n;i ++)
        scanf("%d",&a[i]);
    for (int i = 1;i <= n;i ++)
        b[i] = max(b[i - 1],a[i]);
    for (int i = n;i;i --)
        c[i] = max(c[i + 1],a[i]);
    long long ans = 0;
    for (int i = 1;i <= n;i ++)
        ans += min(b[i],c[i]) - a[i];
    printf("%lld\n",ans);
    return 0;
}

 

分省份-城投债信用利差跟踪(私募债)20260206.xlsx 立即下载

相关推荐

AI大模型医学影像诊断智能识别应用方案.pptx

AI大模型医学影像诊断智能识别应用方案.pptx

【CT】LeetCode手撕—42. 接雨水

求雨水的面积 ——> 不仅是只求一个比当前元素大的元素,还要求面积。

weixin_44382896的博客 1310

douyin-favorite-MyLike-main.zip

douyin-favorite-MyLike-main.zip

OJ练习第76题—— 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

weixin_45662626的博客 238

风光储虚拟同步VSG并离网切换预同步控制仿真(Simulink仿真实现)

内容概要:本文针对风光储混合微电网系统,深入研究了虚拟同步发电机(VSG)技术在并网与离网两种运行模式间进行切换时的关键控制策略——预同步控制,并基于Simulink平台构建了完整的系统仿真模型以验证该策略的有效性。该模型集成了风力发电、光伏发电和储能系统,通过VSG控制算法赋予电力电子逆变器类似于传统同步发电机的惯性和阻尼特性,从而显著增强了微电网在模式切换过程中的动态稳定性与鲁棒性。其中,预同步控制环节是实现无缝切换的核心,它通过实时调节VSG输出电压的频率、相位和幅值,使其在并网开关动作前就与主电网的电压参数达到高度一致,有效消除了并网冲击电流,实现了平滑、无扰动的模式转换。通过仿真结果,可以系统地分析和优化控制器的各项参数,进而验证该整体控制方案的技术可行性与优越性能。; 适合人群:具备电力电子技术、自动控制理论和电力系统基础的专业知识,从事新能源发电、微电网运行与控制、电力系统自动化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究风光储一体化混合微电网的能量管理策略与并离网无缝切换控制技术;②深入学习和掌握虚拟同步机(VSG)的工作原理、数学建模及其在逆变器控制中的具体实现方法;③利用Simulink进行复杂的电力系统动态仿真,以验证和评估新型控制算法的动态响应特性和有效性。; 阅读建议:此资源以Simulink仿真为核心实践工具,使用者应紧密结合电力系统的基础理论知识,深入理解VSG的数学模型和控制逻辑,尤其要重点关注预同步环节的控制策略设计,并通过反复调整仿真模型中的各项参数来观察系统的动态响应变化,从而深化对微电网稳定运行机制和高级控制技术的理解。

【顶级EI复现】新扩展移相角下的双有源桥DC-DC 变换器优化控制策略(Simulink仿真实现)

内容概要:本文聚焦于“新扩展移相角下的双有源桥DC-DC变换器优化控制策略”的研究与仿真实现,基于Simulink平台系统地构建了完整的仿真模型,深入探讨了软开关实现、最小电流应力优化及闭环控制策略的设计方法。文章提出一种改进型扩展移相(EPS)调制策略,通过引入扩展移相角有效拓宽软开关范围,提升变换效率并降低功率器件的电压与电流应力。结合KKT最优性条件与分段解析优化理论,实现了软开关与最小应力的协同控制目标,并设计双闭环控制系统以增强动态响应与鲁棒性。研究成果成功复现了高水平EI期刊论文的核心思想,具有较强的学术参考价值与工程应用意义。; 适合人群:电力电子、电气工程及其自动化等方向的研究生、科研人员,以及具备一定Simulink建模能力与电力电子拓扑控制基础的工程技术人员。; 使用场景及目标:①深入理解双有源桥(DAB)变换器的工作机理与先进控制策略;②掌握基于KKT条件的优化控制建模方法;③在Simulink中复现并验证EI级论文提出的控制算法,服务于科研论文撰写、课题研究或实际项目开发; 阅读建议:建议结合文中涉及的EPS调制、软开关条件推导、KKT优化数学建模等内容进行系统学习,重点关注仿真模块的参数设置、控制逻辑实现与波形分析,以全面掌握该优化策略的技术细节与工程实现路径。

LeetCode高频题42. 接雨水

1)本题跟之前盛水最多的容器颇有相似之处,盛水主要是找底边最大情况下,尽量拿最高的桶,看maxL和maxR谁是瓶颈 2)本题也是来到L,R位置,看看左边大,还是右边大,看看瓶颈,结算水量,然后更新maxL和maxR,o(n)搞定 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。 ............

weixin_46838716的博客 764

边缘计算环境中基于启发式算法的深度神经网络卸载策略(Matlab代码实现)

内容概要:本文系统探讨了在边缘计算环境中,如何利用启发式算法解决深度神经网络(DNN)的任务卸载问题,并提供了完整的Matlab代码实现方案。文章首先分析了边缘计算环境下DNN推理所面临的关键挑战,如计算资源受限、通信延迟敏感以及能效约束等;在此基础上,构建了以最小化任务延迟、系统能耗与经济成本为核心的多目标优化模型,并详细阐述了基于贪心算法、遗传算法、粒子群优化(PSO)等典型启发式算法的卸载决策机制。通过对多种应用场景的仿真实验,对比评估了不同算法在任务完成时间、资源利用率和能量消耗等方面的性能表现,验证了所提策略在提升系统整体效率方面的有效性与优越性。文档还包含了Matlab仿真环境搭建、参数配置说明及结果可视化方法,为相关研究提供了可复现、可扩展的技术框架。; 适合人群:具备一定计算机网络、边缘计算、人工智能或优化理论基础的研究生、科研人员及工程技术开发者,特别适用于从事DNN模型部署、边缘智能、任务调度与资源管理等相关领域研究的专业人士。; 使用场景及目标:① 研究边缘计算中深度学习模型的高效执行与部署策略;② 学习并实现基于启发式算法的计算任务卸载与资源协同优化方法;③ 利用Matlab平台进行智能算法仿真、性能评估与科研原型开发,支撑学术研究或工程实践。; 阅读建议:建议读者结合提供的Matlab代码逐章节深入阅读,重点关注问题建模、算法设计与仿真实验部分,动手运行并调试代码以加深对卸载机制与优化过程的理解,同时可根据实际应用场景对算法参数、目标函数或网络拓扑进行定制化改进与拓展研究。

ZZULI2400小G的日常之接雨水

小G的日常之接雨水 题目链接:http://acm.zzuli.edu.cn/problem.php?id=2400 时间限制:1 Sec内存限制:128 MB 题目描述 下雨了,小G想到了一个问题,给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 你...

雷恩的博客 298

从零搭建企业级AI网关:基于LiteLLM的安全防护体系设计

本文详细介绍了如何从零搭建企业级AI网关,基于LiteLLM构建全面的安全防护体系。内容涵盖分层防御架构、敏感数据处理、合规性配置与审计追踪,以及生产环境部署策略,助力企业安全高效地集成LLM技术,确保数据安全和合规性。

qq_27496129的博客 1291

OrthoFinder功能、流程和文件注释

OrthoFinder 的标准输出包括:直系同源组,直系同源基因,有根基因树,解析基因树,无根物种树、有根物种树,基因重复事件以及相关的统计数据。

hs6605015的博客 3045

小G的日常之接雨水 ZZULIOJ - 2400 思维 | 中途相遇

题解 题目链接 当前位置能积水只有两边都有比他高度高的柱子才行 接受的同时计算从左向右到达当前位置的最高高度 倒着扫一遍 过程中计算从右向左到达当前位置的最高高度答案为 min(左最高, 右最高) - 当前高 注意不能为负 AC代码 #include &amp;amp;lt;stdio.h&amp;amp;gt; #include &amp;amp;lt;bits/stdc++.h&amp;amp;gt; using namespace std; typede

CaprYang的博客 943

【QGIS入门实战精品教程】4.2:QGIS矢量数据采集(地图数字化)案例教程

本文基于上一个实验栅格数据地理配准,讲述在QGIS中创建shp格式矢量数据(点、线、面)并进行矢量数据的采集与编辑。 文章目录一、实验数据及任务二、创建Shapefile图层三、数字化超详细步骤 一、实验数据及任务 1. 实验数据:为了保证实验的连贯性,本次实验采用的数据为上一个实验地理配准的结果数据,为配准后的甘肃省地图。 参考阅读:【QGIS入门实战精品教程】4.1:QGIS栅格数据地理配准完整操作流程 添加实验数据: 2. 实验任务:本实验任务为以配准后的甘肃省地图为底图,创建点状(地级市.

智慧空间实验室 3380

LeetCode-42. 接雨水(单调栈)

42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 法一 找出每根柱子左右的最高点,取两边最高柱子最小的高度,与中间柱子高度相减就是凹槽的高度 class Solution { public: int trap(vector<int&gt...

紫藤&code的博客 3907

QT入门开发一个时钟

本文讲述了时钟开发的具体过程以及代码。 涉及到一下几个知识点: 1. 定时器使用 2. 本地时间获取 3. resource资源读取 4. 图片绘制 5. 图片按照中心旋转 6. sin或者cos角度计算。

啊渊的专栏 5143

多无人车协同探索开源包部署教程及常见报错解决方式

本博客将介绍项目的基本概念、部署步骤以及常见问题的解决方案。该项目利用 RRT(Rapidly-exploring Random Tree)算法,通过多机器人协作进行高效的环境探索,适用于自动化与自主导航任务。项目简介:介绍该项目的核心算法、特点及应用场景,展示如何通过多个机器人共同工作来提升探索效率。部署教程:详细讲解如何在 ROS Noetic 环境中部署该项目,安装依赖、创建工作空间、克隆代码并编译项目。项目运行:包括单机器人与多机器人自主探索的示例,帮助读者快速理解和实践项目。

慕羽★的博客 1764

Trapping Rain Water 收集雨水 C/C++

Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For example, Given [0,1,0,2,1,0,1,3,2,1,2,1], ret...

weixin_34354945的博客 304

【2025国赛C题】高教社杯全国大学生数学建模竞赛C题思路+代码+论文

【2025国赛C题】高教社杯全国大学生数学建模竞赛C题思路+代码+论文

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2901

接雨水 lintcode

这道题可以有两种做法。 做法一:扫两遍。 对某个值A[i]来说,能trapped的最多的water取决于在i之前左边的最高值和在i右边的最高的值,然后取当中较小的一个。 所以可以根据上面的分析先从左到右扫一遍得到数组LeftMostHeight,然后再从右到左计算RightMostHeight,这样只扫了两遍可以得到答案,时间复杂度是O(n),空间复杂度是O(n)。 做

孤竹的博客 1116

【kubernetes】kubernetes kubeadm init 错误了 怎么回退?

因为虚拟机设置问题首先报错:然后我根据文章修改了核数。重启后,查看VIP运行所在机器,发现机器没有变化然后重新执行初始化后面报错了根据提供的信息,问题主要集中在 kubelet 未能成功启动控制平面组件,导致初始化过程超时。以下是可能的原因及相应的排查步骤:原因 1:kubelet 未运行或运行状态异常正如错误提示所指出,kubelet 可能未运行或处于不健康状态。请按照提示执行以下命令检查 kubelet 的状态和服务日志:根据输出结果,判断 kubelet 是否正常运行。后续一大堆错误。

九师兄 120

lammps教程:MS转data文件出错原因分析及解决办法

使用ms建模是lammps建模的一种重要方法,但是ms建模转换为data过程中经常会出现各种各样的错误。 ms模型转data文件流程分两部分,一是ms建模、forcite设置力场并导出car文件,二是msi2lmp将car转为data文件。 任何一个环节出错都会导致无法得到data文件,最容易出错的是forcite力场设置环节。 forcite力场设置出错原因有很多,一个原因是缺乏某类原子的力场参数。 msi2lmp软件只能转换cvff或pcff力场的car文件,因此,如果力场中不包含某类原子的参数,在设置

lammps_jiayou的博客 5062

OJ---接雨水问题

import java.util.*; public class Solution { /** * max water * @param arr int整型一维数组 the array * @return long长整型 */ public long maxWater (int[] arr) { // write code here int top = 0; int max = 0; f

龍淵的博客 262

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

(LeetCode 42)接雨水 [思维题]

42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 分析: (我们...

STILLxjy 999

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

leetcode 42 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例: 输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 看了看leecode上的最快速度...

martinue 278

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ZZULI 2400小G的日常之接雨水

ZZULI 2400小G的日常之接雨水 ** 题目描述 下雨了,小G想到了一个问题,给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 你能帮帮小G吗? 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 输入 第一行,输入一个数n(1 <= n &lt...

Lionel的博客 237
上一篇: HDU - 1241 Oil Deposits dfs
下一篇: 牛客小白赛签到题
cloudy_happy
博客等级 码龄9年 35粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值