news 2026/4/18 19:50:07

连号区间数 暴力

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
连号区间数 暴力

连号区间数

题目描述

小明这些天一直在思考这样一个奇怪而有趣的问题:

1 11~N NN的某个全排列中有多少个连号区间呢?

这里所说的连号区间的定义是:

如果区间[ L , R ] [L, R][L,R]里的所有元素(即此排列的第L LL个到第R RR个元素)递增排序后能得到一个长度为R − L + 1 R - L + 1RL+1的"连续"数列,则称这个区间连号区间。

N NN很小的时候,小明可以很快地算出答案,但是当N NN变大的时候,问题就不是那么简单了,现在小明需要你的帮助。

输入描述

第一行是一个正整数N ( 1 ≤ N ≤ 50 × 10 4 ) N (1 \leq N \leq 50 \times 10^4)N(1N50×104), 表示全排列的规模。

第二行是N NN个不同的数字P i ( 1 ≤ P i ≤ N ) P_i (1 \leq P_i \leq N)Pi(1PiN),表示这N NN个数字的某一全排列。

输出描述

输出一个整数,表示不同连号区间的数目。

输入输出样例

示例

输入:

4 3 2 4 1

输出:

7

运行限制

题目分析

题目为给你一个数组(是 1~N 的一个排列,没有重复),找出有多少个子区间 [L, R] 是“连续数”
举例:

3241区间[1,3]324排序后234, 是一个连续数

通过观察我们可以知道
m a x − m i n = = R − L max - min == R - Lmaxmin==RL
所以我们可以枚举所有区间,检验m a x − m i n = = R − L max - min == R - Lmaxmin==RL
如果相等,则该区间满足要求
代码如下:

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin>>n;vector<int>p(n);for(inti=0;i<n;i++){cin>>p[i];}longlongans=0;for(intl=0;l<n;l++){intmn=p[l],mx=p[l];for(intr=l;r<n;r++){mn=min(mn,p[r]);mx=max(mx,p[r]);if(mx-mn==r-l){ans++;}}}cout<<ans<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 19:45:22

告别Keil:基于VSCode+ARM-GCC+OpenOCD的STM32一站式开发环境实战

1. 为什么选择VSCodeARM-GCCOpenOCD开发STM32&#xff1f; 作为一名在嵌入式领域摸爬滚打多年的老鸟&#xff0c;我深知Keil MDK这类传统IDE的痛点&#xff1a;商业授权费用高、界面老旧、扩展性差。记得去年接手一个开源项目时&#xff0c;团队里有小伙伴用Keil&#xff0c;有…

作者头像 李华
网站建设 2026/4/18 19:42:17

FanControl深度体验:让Windows电脑风扇从此智能静音

FanControl深度体验&#xff1a;让Windows电脑风扇从此智能静音 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…

作者头像 李华
网站建设 2026/4/18 19:38:13

如何设置Dev-C++的语法高亮颜色

在Dev-C中设置语法高亮颜色&#xff0c;请按以下步骤操作&#xff1a;打开设置菜单点击顶部菜单栏的 Tools&#xff08;工具&#xff09; → 选择 Editor Options&#xff08;编辑器选项&#xff09;进入语法标签页在弹出的窗口中&#xff0c;切换到 Syntax&#xff08;语法&am…

作者头像 李华
网站建设 2026/4/18 19:37:39

Dev-C++有哪些内置配色方案可选

Dev-C 提供了几种内置的配色方案&#xff0c;可通过以下路径设置&#xff1a; Tools → Editor Options → Syntax&#xff08;语法高亮选项卡&#xff09;。常见的内置方案包括&#xff1a;Default&#xff08;默认&#xff09;经典蓝紫色调&#xff0c;适合大多数编程场景。D…

作者头像 李华