山谷(思维)

从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

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3223

NYIST山谷

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

匠夫子 831

window部署open claw(使用wsl-Ubuntu-docker部署)

本文详细介绍了在Windows 11系统下通过WSL2+Docker部署OpenClaw的完整流程。首先需要满足硬件配置要求并开启虚拟化功能,然后依次完成WSL2安装配置、Docker Desktop安装、OpenClaw镜像拉取等步骤。重点说明了端口映射、socat转发配置及openclaw.json文件修改方法。最后通过验证WSL2内网IP和端口访问服务。该方案具有最佳兼容性,能有效避免Windows环境下的依赖冲突问题。

Kmoyic的博客 2763

1、使用Spark SQL查询Databricks:全面指南

本博客全面介绍了如何使用Spark SQL在Databricks平台上进行高效的数据查询与分析。内容涵盖SQL基础操作、数据过滤、复杂查询技巧、简单与高级计算、数据聚合、日期处理等核心主题,适合数据分析师、开发人员及SQL学习者。通过逐步讲解和实用示例,帮助读者掌握从入门到高级的SQL技能,并提供学习路径建议和免费代码资源,助力实际数据分析工作。

redis7keeper的博客 90

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

《C++等级认证CCF-GESP真题解析》专栏总目录

❤️ 专栏名称:《C++等级认证CCF-GESP真题解析》🌸 专栏介绍:中国计算机学会GESP《CCF编程能力等级认证》C++编程(1~8级)历届真题解析。🚀 订阅专栏:订阅后可阅读专栏内所有真题解析,真题持续更新中,欢迎订阅!

人生就是一个不断学习的过程 6287

山峰

题意给你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

基于多智能体强化学习的轨道追逃博弈方法复现

本文提出了一种基于多智能体深度强化学习(MADDPG)的空间轨道追逃博弈方法。通过构建Actor-Critic网络架构,采用集中训练分布式执行的策略,使卫星群能够自主协调完成对非合作目标的围捕任务。代码实现了经验回放缓冲区、噪声探索机制和网络参数更新等核心功能,通过奖励函数设计平衡最短时间、燃料消耗和碰撞规避等目标。仿真结果表明该方法能有效利用数量优势,涌现出智能协同行为,为解决复杂空间博弈问题提供了新思路。

huanghm88的专栏 336

TC8:IPv4_HEADER_05-09

所有主机都必须准备好接受最多576个字节的数据报我们知道最大传输单元MTU通常是1500个字节,也就是说一条IP数据报的Header+payload最大1500,那为什么这条测试用例又要求主机准备好接受最多576个字节的IP数据报呢。

jasonj333 510

山峰的个数

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

countofdane的博客 1415

第4章-上下文管理-对话历史记忆系统与窗口优化-《Agentic AI 智能体应用开发》

当上下文窗口接近极限时,需要对已有内容进行压缩。压缩不是简单的截断——你需要保留核心语义,去除冗余。# Python: 对话摘要压缩# 使用 Haiku 做摘要任务,成本最低"""将一段对话历史压缩为摘要"""system="你是一个对话摘要专家。请生成简洁但有信息量的摘要。",f"'用户'

AI天才研究院 245

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

55、宇宙微波背景辐射望远镜及其光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统的设计与优化。内容涵盖折射与反射光学系统的特性、旁瓣控制技术、气球与地面观测系统的对比、探测器阵列的发展、光学系统设计流程以及不同观测场景下的光学系统选择。同时,文章展望了CMB望远镜光学系统的未来发展趋势,包括技术创新、多频段观测、国际合作与大型项目等。通过系统性的分析与对比,为CMB研究提供了全面的技术支持与理论基础。

f9g0h的博客 142

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

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

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

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

touxing777的博客 3025

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

黄小黄的博客 3378

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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、付费专栏及课程。

余额充值