山谷(思维)

从COCI竞赛题POPLAVA解析算法思维:构造排列与山峰序列 在算法竞赛与编程问题求解中,构造性思维是一种将抽象问题转化为具体可行方案的核心能力。其原理在于通过分析问题的数学约束与极值,设计出满足特定条件的结构或序列。这种技术的价值在于能够高效解决存在性输出类问题,避免复杂的搜索或动态规划,在时间复杂度上具有显著优势。常见的应用场景包括组合数学问题、序列生成以及满足特定约束的排列构造等。本文以一道经典的克罗地亚信息学竞赛(COCI)题目POPLAVA为例,深入探讨如何计算排列中山峰值的最大可能范围,并设计出一种有效的贪心构造策略,通过C++代码实现从问题分析到AC解答 阅读详情
描述

八百里伏牛山连绵不断,高低起伏。

学习过数山谷的个数之后,小明想知道这些山谷中最多能装多少水。

我们用竖直的矩形表示山的高度,如图:


我们用这样一种形式来表示上图的山:[6 1 4 6 7 5 1 6 4],每个数字代表山的高度。

假如连日暴雨,爆发山洪,这些山之间的山谷能装多少水?

规定用单位1的方块来计算容积。所以,在上边的图中下标为1以左都会漏掉。下标8以右的也会漏掉。剩下的只有在1和4、5和8之间的山谷有水(即蓝色方块),容积是13。

输入
多组测试数据,第一行给出数据组数T。(T<15)
对于每组测试数据:
第一行给定一个整数N(0 < N <= 1000000),表示山的个数
第二行有N个正整数,第i个数 a[i] (0 < a[i] <= 1000000) 表示第i座山的高度
输出
每组数据输出一行,表示所有山谷能装水的总容积。
样例输入
1
9
6 1 4 6 7 5 1 6 4
样例输出
13
上传者
ACM_马振阳


题目难度不大,注重思维

从后向前记录最大值,从前向后扫描一遍
#include <string.h>
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
#define LL long long
const int maxn = 1500000;
LL rec[maxn],big[maxn];
int n;
int main(){
    int i,j,k,t,now,b;
    scanf("%d",&t);
    LL ans;
    while(t--){
        scanf("%d",&n);
        ans=0;
        for(i=1;i<=n;i++) scanf("%lld",&rec[i]);
        big[n]=rec[n];
        for(i=n-1;i>=1;i--){
            big[i]=max(big[i+1],rec[i]);
        }
        i=1;
        while(i<n){
            now=rec[i];
            b=big[i+1];
            if(now > big[i+1]){
                rec[i]=big[i+1];
            }else{
                i++;
                while(rec[i]<now && i<n){
                    ans+=now-rec[i];
                    i++;
                }
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}


从‘山峰’与‘山谷’理解拉普拉斯锐化:一个给视觉思考者的MATLAB实操 本文通过地形学隐喻解析拉普拉斯锐化原理,提供MATLAB实操指南。详细讲解如何利用fspecial生成拉普拉斯算子,通过imfilter实现图像边缘增强,帮助视觉思考者直观理解二阶导数在图像锐化中的应用。包含4邻域与8邻域核对比、数据类型处理技巧及医疗影像增强案例。 阅读详情

相关推荐

从‘山峰’与‘山谷’的比喻理解拉普拉斯锐化:一个MATLAB小白的图像处理笔记

本文通过'山峰'与'山谷'的生动比喻,帮助MATLAB初学者理解拉普拉斯锐化在图像处理中的应用。详细介绍了拉普拉斯算子的数学原理、MATLAB实现方法(使用imfilter和fspecial函数)以及常见问题的解决方案,为图像锐化技术的学习提供了实用指南。

weixin_29065659的博客 252

1454:山峰和山谷

1454:山峰和山谷 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 93 通过数: 28 【题目描述】 给定一个 n×n 的网格状地图,每个方格 (i,j)有一个高度 wij ​​ 。如果两个方格有公共顶点,则它们是相邻的。 定义山峰和山谷如下: 均由地图上的一个连通块组成; 所有方格高度都相同; 周围的方格(即不属于山峰或山谷但与...

bggl的博客 2771

认知网络分析实战:用Python复现课堂对话研究(含LSA代码)

本文通过Python实战,详细演示了如何运用认知网络分析(ENA)和滞后序列分析(LSA)两种方法,对课堂对话数据进行深度挖掘。文章提供了从数据清洗、行为编码到网络构建、序列统计及可视化的完整代码流程,帮助教育研究者和数据分析师量化分析对话中的认知结构与动态互动模式,从而获得超越文本表面的研究洞见。

weixin_28559803的博客 155

NYIST山谷

这道题说是暴力枚举的很简单,但是依然让我绕了半天才理解。下面介绍两种办法来枚举。 第一种,找山峰和山底的个数,山谷的个数就是山峰和山底的个数的二分之一。   #include int main() {         int t,i,n,h[10005],num,flag;         while(~scanf("%d",&n))         {

匠夫子 831

人工智能发展史(从起步到磅礴)以及浪潮阶段

随机森林是将多个有差异的弱学习器(决策树)Bagging并行组合,通过建立多个的拟合较好且有差异模型去组合决策,以优化泛化性能的一种集成学习方法。从论文里可以了解到,GPT-1具有1.17个参数,采用了12层的Transformer 解码器结构,使用5GB的无标注文本数据,在8个GPU上训练了一个月,然后再进行人工监督的微调。训练相结合的理念(该方法在当时计算力上还是有很多挑战,基本上都是和链式求导的梯度算法相关的),这也解决了单层感知器不能做非线性分类的问题,开启了神经网络新一轮的高潮。

xiao77224li的博客 7504

第三节: 串口通信(用CubeMX学习STM32)

用CubeMX学习STM32, 串口通信学习, 通过轮询方式和中断方式两种方式进行通信演示。 STM32F407zgt6

Kevin_8_Lee的博客 8903

18年拼多多面试-数组“山谷”

数组里的“山谷”是指一个数组A汇总的连续子数组B满足一下条件:1)B.length&gt;=3; 2)存在满足:0&lt;i&lt;B.length-1并且B[0]&gt;B[1]&gt;...B[i-1]&gt;B[i]&lt;B[i+1]&lt;...&lt;B[B.length-1];(B可以是A的子数组或者等于A) 给定一个数组A,找出数组A里的最长“山谷”B的长度,如果没有,则输出0。...

momo026的博客 726

使用lightGBM进行数据建模及预测

在机器学习领域中,数据建模和预测一直是非常重要的任务。而lightGBM作为一种基于梯度提升算法的高效机器学习框架,被广泛应用于数据建模和预测中。本文将介绍如何使用lightGBM进行数据建模和预测。到此,我们已经成功使用lightGBM对数据进行了建模和预测。使用lightGBM可以快速、高效地完成数据建模和预测任务,是机器学习领域中不可或缺的工具之一。使用lightGBM进行数据建模及预测。

qq_37934722的博客 1016

山峰

题意给你n∗mn*m的矩阵,且每个点有它的高度h[i,j]h[i,j],统计从这个点出发,在不经过小于等于h[i,j]−ph[i,j]-p的高度下能到无法到达比h[i,j]h[i,j]要高的地方的点的个数。数据范围30% n,m<=10 100% n,m<=500

Andy&Calrn的博客 566

perl 安装DBI和DBD

还可以从cpan.perl.org站点下载tar压缩文件形式的源代码发行版本,解压缩后,切换到相应的文件目录 cd DBI-1.54 perl Makefile.PL make make test make install 安装DBD时候 需要export ORACLE_HOME 验证安装: perldoc DBD::Oracle perldoc DBI 在线文档; perldoc -m

zhaoyangjian724的专栏 1754

石油化工软件:ProII二次开发_(9).案例研究:ProII二次开发实例

我们将上述三个步骤整合到一个完整的案例中,展示如何从头到尾实现一个ProII二次开发项目。这个项目包括自动化流程模拟、数据处理与分析以及动态工艺参数调整。

kkchenjj的博客 918

山峰的个数

关住 公 纵 号 “  阿蒙课程分享    ”  获得学习资料及趣味分享 描述:十一假期,小P出去爬山,爬山的过程中每隔10米他都会记录当前点的海拔高度(以一个浮点数表示), 这些值序列保存在一个由浮点数组成的列表h中。回到家中,小P想研究一下自己经过了几个山峰,请你帮他计算一下,输出结果。 例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 将这些高度顺序连线,会发现有两个山峰,...

countofdane的博客 1415

华为MetaERP Oracle EBS OM(订单管理)模块详解作为ERP财务解决方案架构师,理解OM模块的业务全景和数据模型至关重要。OM是EBS分销链路的核心引擎,贯穿“订单到收款“(Orde

Oracle EBS OM模块是管理销售订单全生命周期的核心模块,涵盖客户管理、订单执行、发运开票、定价及信用控制等功能。其标准流程包括订单录入、预订、发放、发运确认和自动开票等环节,核心数据表涉及订单、客户、发运和定价等业务对象。OM模块与库存、应收、发运等模块深度集成,架构师需重点设计订单类型、信用控制策略和自动开票接口等关键环节,确保业务流程高效流转。

金牌架构师 357

AcWing 1106. 山峰和山谷 bfs+思维

AcWing 1106. 山峰和山谷 FGD小朋友特别喜欢爬山,在爬山的时候他就在研究山峰和山谷。 为了能够对旅程有一个安排,他想知道山峰和山谷的数量。 给定一个地图,为FGD想要旅行的区域,地图被分为 n×n 的网格,每个格子 (i,j) 的高度 w(i,j) 是给定的。 若两个格子有公共顶点,那么它们就是相邻的格子,如与 (i,j) 相邻的格子有(i−1,j−1),(i−1,j),(i−1,j+1),(i,j−1),(i,j+1),(i+1,j−1),(i+1,j),(i+1,j+1)。 我们定义一个格

qq_52358098的博客 303

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

力扣每日一题(四十七——统计道路上的碰撞次数)

仅以此纪录每日LeetCode所刷题目。 题目描述: 示例: 思路: 这道题一开始的想法是使用模拟来解答,但是如果我们遇到'RRRRL'这种情况,我们在判断‘RL’相撞之后还需要回退到前面,因为前面的'RRRR'也有相撞,因此模拟方法相当麻烦,我们换一种思路。首先,如果directions串的前n个字符是'L',那么他们不会发生碰撞,我们可以将其剔除;同理如果directions串的后n个字符是'R',那么他们也不会发生碰撞,我们可以将其剔除。此时剩余的directions串中,一定会发..

touxing777的博客 3025

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

第十四届蓝桥杯模拟赛第一期试题与题解Java

二进制位数、晨跑、调和级数、山谷、最小矩阵、核酸日期、英文转换、充电器题目及题解

黄小黄的博客 3378

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

GESP2026年3月认证C++四级( 第三部分编程题(1) 山之谷)

GESP2026年3月认证C++四级( 第三部分编程题(1) 山之谷)

汉克老师的博客 474

nyoj 755 山谷 (水题)

题目755 题目信息 运行结果 本题排行 讨论区 山谷 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 八百里伏牛山连绵不断,高低起伏。 家住山脚下的小明开始学习识数了,面朝群山,他想数一下对面有多少山谷,请你写个程序帮他检验一下他数的结果是否正确。 输入有多组测试数据。 对于每组数据:

苏苏爱自由 2072

基于熵值监控的AI智能体早期退出框架:Entroplain原理与实战

在大型语言模型(LLM)的推理过程中,模型输出的不确定性(熵)是衡量其思考状态的关键指标。信息论中的熵值计算能够量化模型在每个生成步骤中的置信度,从而揭示其推理轨迹。这一原理为优化AI智能体的计算效率提供了技术基础:通过实时监控熵值变化,可以判断模型是否已完成有效推理,并在适当时机触发早期退出,避免冗余计算。这种技术能显著降低token消耗和API成本,尤其适用于事实问答、代码生成等收敛性任务场景。Entroplain框架正是基于这一思想,通过代理模式或直接集成,实现对OpenAI、Claude等主流模型的

weixin_30292745的博客 416

Codeforces Round #695 (Div. 2)(A~C)

A. Wizard of Orz(规律) 思路 直接找规律, 首先要让构造的数尽可能的大的话,就要的高位数字尽可能的大, 当位数为 1 的时候我们直接选择第一位,构造出 9, 当数位为 2 的时候我们选择第二位,构造出 98, 当位数 >=3 的时候我仍然选择二位,构造出 989765432109876543… 注意⤴️的第几位指的是从高位向低位数, 代码 #include <iostream> #include <stdio.h> #include <string

做一只熊猫不好吗? 189

【转】转换思维,寻找创新点

一种重要的科研思维,它就是发散思维,在科研的过程中,会用发散思维是特别特别重要的,很多时候在找课题的创新点,或者打算写小论文时,都需要好的想法来支撑,这就非常需要用发散思维去找好的想法和创新点啦。 同样一件事情,同样一个问题,为什么他的角度这么独特,而我就想不到。 这就是思维的不同,所谓发散性思维,就是“从一点向四面八方想开去的思维”,这里推荐游国经老师的《创造性思维与方法》给大家学习,当年我的导师介绍我看的,挺有意思。 这种思维方式的特点就是不依常规,寻求新意,对自己所持...

weixin_43411245的博客 670

6道编程题解答

1.自然数的拆分问题。

2401_87063504的博客 778

Codeforces Round #695 (Div. 2) B. Hills And Valleys(思维+贪心+模拟)

给出 n 个数,如果 a[i]>a[i-1] && a[i]>a[i+1] 或者a[i]<a[i-1] && a[i]<a[i+1] 那么称 a[i] 为山峰或山谷,可以改变一个数,问改变一个数之后,数列中剩下的山峰山谷的个数最少有几个 我们很容易想到当有 山峰-山谷-山峰的时候可以一下消去 3 个,这是最优的; 其次如果单个山峰或山谷,只消去 1 个,这是最差的 当 山峰-山谷 时,不可能两个山峰同时出现,好的情况可以将两个都删...

C_Dreamy的博客 423

51NOD--1285 山峰和分段--思维

1285 山峰和分段 1.0 秒 131,072.0 KB 20 分 3级题 用一个长度为N的整数数组A,描述山峰和山谷的高度。山峰需要满足如下条件, 0 < P < N - 1 且 A[P - 1] < A[P] > A[P + 1]。 以上图为例,高度为:1 5 3 4 3 4 1 2 3 4 6 2。 现在要将整个山分为K...

lanshan1111的博客 243

51Nod 1276 岛屿的数量(思维)

可以看一下比人的讲解:这里写链接内容 分析:很好的一道思维题。 /* (1)两个特殊的情况,最开头的和结尾的。 (2)如果这个地方是山谷,岛屿个数+1; 如果这个地方是山峰,岛屿个数-1; 如果不是山峰不是山谷,岛屿个数不变。 (3)如果两边都已经淹没,那么这个岛屿是山峰 如果两边没有淹没,那么这个岛屿是山谷 ...

xx_ii 286
上一篇: HUST 1025 Sequence(递归 + 重复计算消除)
下一篇: POJ 1253 SPF(tarjan算法求割点)
sunrainchy
博客等级 码龄14年 14粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值