首页 > 其他分享 >连号区间数

连号区间数

时间:2023-02-06 18:32:18浏览次数:33  
标签:cnt min int max 样例 区间 include


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

在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:

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

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

输入格式
第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。

第二行是N个不同的数字Pi(1 <= Pi <= N), 表示这N个数字的某一全排列。

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

样例输入1
4
3 2 4 1
样例输出1
7
样例输入2
5
3 4 2 5 1
样例输出2

9


为AC:


# include <iostream>
# include <cstdio>
# include <cstring>
# include <set>
# include <cmath>
using namespace std;


int a[50000+9];

int main(){

int n;
scanf("%d",&n);

for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}

int min = 0,max=0;
int cnt = 0;
for(int i=0;i<n;i++){

for(int j=0;j<=i;j++){
min = a[j];
max = a[j];
int k;
if(i==j){
cnt++;
continue;
}
for(k=j;k<=i;k++){
if(a[k]<min){
min = a[k];
}else if(a[k]>max){
max = a[k];
}
}

if((max-min)==(i-j)){
cnt++;
}


}
}

printf("%d\n",cnt);

return 0;
}



标签:cnt,min,int,max,样例,区间,include
From: https://blog.51cto.com/u_15955675/6040219

相关文章

  • 求区间内质数(素数)
    题目:判断101~200之间有多少个质数(素数),并输出全部质数(素数)。质数(又称素数),是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数)。比1大但......
  • 闭区间可导函数在在两个端点处连续的证明
    如果一个函数在闭区间\([a,b]\)内可导,那么首先\(f^{'}\)在区间\((a,b)\)任意一点都存在,且如下两个极限存在\[\lim_{h\rightarrow0^+}\frac{f(a+h)-f(a)}{h}\\\lim_{h......
  • POJ 1436 Horizontally VisibleSegments(线段树成段更新+区间覆盖染色)
    DescriptionThereisanumberofdisjointverticallinesegmentsintheplane.Wesaythattwosegmentsarehorizontallyvisibleiftheycanbeconnectedbyaho......
  • POJ 3468(树状数组+区间修改)
    题目描述给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“Clrd”,表示把A[l],A[l+1],…,A[r]都加上d。2、“Qlr”,表示询问数列中第l~r个数的和......
  • ST算法(区间最值)
    ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后酶促查询的复杂度是O(1)。其原理是倍增,f[i][j]表示从i位起的2^j个数中的最大数,即[i,i+2^j-1]中的最大值。首先,我们......
  • Java如何将若干时间区间进行合并的方法步骤
    java如何将若干时间区间进行合并的方法步骤问题原因工作中突然有个场景,需要合并时间区间。将若干闭合时间区间合并,实现思路如下:1、先对日期区间进行按时间顺序排序,这样......
  • 多区间合并
    给出多个区间,每给出一个区间就查询:使\([1,x]\)都被覆盖到的最大的\(x\)为多少可以用set<pair<int,int>>存入区间(set默认按照pair的first升序排序),每次insert一个区间后......
  • 【算法训练营day36】LeetCode435. 无重叠区间 LeetCode763. 划分字母区间 LeetCode56.
    LeetCode435.无重叠区间题目链接:435.无重叠区间独上高楼,望尽天涯路好像有点开窍了!我的思路是,升序排序(左对齐),然后按顺序遍历,遇到重叠时,拿走尾巴更长的区间,从而保证局部......
  • [概率论与数理统计]笔记:5.3 置信区间
    5.3置信区间前言点估计无法提供其估计的误差,而区间估计可以。案例:“某人的月薪比2k多,比20k少”,这就是一个区间估计。区间估计的好坏有两个衡量指标:区间长度真实值......
  • P6327 区间加区间sin和 题解
    P6327区间加区间sin和题解第一道Ynoi(捂脸题目描述给出一个长度为\(n\)的整数序列\(a_1,a_2,\ldots,a_n\),进行\(m\)次操作,操作分为两类。操作\(1\):给出\(l,r,v......