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

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

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

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

输入格式:
第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。
第二行是N个不同的数字Pi(1 <= Pi <= N), 表示这N个数字的某一全排列。

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

示例:
用户输入:
4
3 2 4 1

程序应输出:
7

用户输入:
5
3 4 2 5 1

程序应输出:
9

解释:
第一个用例中,有7个连号区间分别是:[1,1], [1,2], [1,3], [1,4], [2,2], [3,3], [4,4]
第二个用例中,有9个连号区间分别是:[1,1], [1,2], [1,3], [1,4], [1,5], [2,2], [3,3], [4,4], [5,5]


题目分析:这个题目给的时间是5秒,其实蓝桥杯可以当暴力杯来打,直接暴力n*n的时间复杂度扔上去就行了,50000*50000才2500000000,虽然我也不知道2e9的数据能在五秒之内跑完,但好像真的是这样的

说回这个题目,因为给出的n个数一定是n的全排列,所以n个数肯定互不相同,若在某个区间[l,r]中满足最大值与最小值的差等于区间长度,那么这个区间就是满足题目条件的,也就是在排序后可以满足成为一段连续的序列,所以我们直接两层for来暴力判断就好了,第一层for枚举的是起点,第二层for枚举的是终点,在其中顺便维护一下两个最值然后判断就好了

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
#include<unordered_map>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=5e4+100;int a[N];int main()
{
//  freopen("input.txt","r",stdin);
//  ios::sync_with_stdio(false);int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",a+i);int ans=0;for(int i=1;i<=n;i++){int mmax=-inf;int mmin=inf;for(int j=i;j<=n;j++){mmax=max(mmax,a[j]);mmin=min(mmin,a[j]);if(mmax-mmin==j-i)ans++;}}printf("%d\n",ans);return 0;
}

蓝桥杯 - 连号区间数(暴力)相关推荐

  1. [蓝桥杯] 连号区间数

    [蓝桥杯] 连号区间数 峰值内存消耗 < 64M CPU消耗  < 5000ms [题目描述 - Problem Description] 小明这些天一直在思考这样一个奇怪而有趣的问题: ...

  2. [蓝桥杯]连号区间数[题目详解]

    题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...

  3. 连号区间数(2013年第四届c/c++ b组第10题)

    题目描述 标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个 ...

  4. 蓝桥杯——特殊回文数

    蓝桥杯--特殊回文数 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行, ...

  5. 历届试题 连号区间数

    试题 历届试题 连号区间数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区 ...

  6. 猫和老鼠 蓝桥杯/手速/暴力练习赛(暴力搜索)

    猫和老鼠 蓝桥杯/手速/暴力练习赛 [题目描述]猫和老鼠在10*10 的方格中运动,例如:*...*...........*......*...*...............*.C....*.... ...

  7. 蓝桥杯:P0604 Runaround数

    蓝桥杯:P0604 Runaround数 编写一个程序,输入一个2~7位的整数,然后判断它是否是一个runaround数.一个N位的runaround数具有以下的特点. (1) 该整数有N位,每一位数 ...

  8. 蓝桥杯练习题 回文数

    蓝桥杯练习题 回文数 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺序输出满足条件的四位十进制数. #include< ...

  9. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs

    时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...

最新文章

  1. 关于IT企业如何建立内部wiki
  2. POJ1038 Bugs Integrated, Inc.
  3. spring中是如何解析@Profile注解的
  4. vscode 注释_VSCode最强助攻
  5. ubuntu安装python3.6_如何在Ubuntu19.04上安装Python3.6?
  6. 广播电视加速技术迭代,用新技术拥抱行业转型
  7. 使用C++的方式实现AES算法
  8. poj1949Chores(建图或者dp)
  9. MySQL笔记-binlog理论及binlog回滚恢复数据
  10. php算法求出一个数可以被分解成多少个_最全的小学干货:34个数学重难点公式(三)...
  11. 1.10_merge_sort_归并排序
  12. Theme Section HDU - 4763(些许暴力)
  13. showdialog url访问页面_静态url在搜索引擎优化中的重要作用
  14. 语音识别结合应用场景 各位大咖也有一些精彩论点
  15. OpenInfra中国日志愿者第三次会议召开
  16. 虎胆龙威5java7723,汉米尔顿腕表联手《虎胆龙威5》再度演绎热血豪情
  17. Android开发之通过浏览器链接打开任意app页面
  18. 小荷特卖:切中女装童装品类、聚焦三线以下城镇市场的闪购平台
  19. 最常见的20道jQuery经典面试题
  20. thinksnsv4.6运行php,SNS开源社交系统ThinkSNS V4.6.0

热门文章

  1. 阻塞(Block)和非阻塞(Non-Block)
  2. 序列化技术的选型-技术层面
  3. J .U.C 中的原子操作类
  4. ConcurrentHashMap的源码分析-resizeStamp
  5. Apollo快速使用
  6. 自定义工具类:导入工具类测试
  7. thymeleaf体验
  8. LocalDateTime - Java处理日期和时间
  9. JDBC详解系列之流程
  10. FastDFS简介和安装