蓝桥杯 - 连号区间数(暴力)
小明这些天一直在思考这样一个奇怪而有趣的问题:
在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;
}
蓝桥杯 - 连号区间数(暴力)相关推荐
- [蓝桥杯] 连号区间数
[蓝桥杯] 连号区间数 峰值内存消耗 < 64M CPU消耗 < 5000ms [题目描述 - Problem Description] 小明这些天一直在思考这样一个奇怪而有趣的问题: ...
- [蓝桥杯]连号区间数[题目详解]
题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...
- 连号区间数(2013年第四届c/c++ b组第10题)
题目描述 标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个 ...
- 蓝桥杯——特殊回文数
蓝桥杯--特殊回文数 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行, ...
- 历届试题 连号区间数
试题 历届试题 连号区间数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区 ...
- 猫和老鼠 蓝桥杯/手速/暴力练习赛(暴力搜索)
猫和老鼠 蓝桥杯/手速/暴力练习赛 [题目描述]猫和老鼠在10*10 的方格中运动,例如:*...*...........*......*...*...............*.C....*.... ...
- 蓝桥杯:P0604 Runaround数
蓝桥杯:P0604 Runaround数 编写一个程序,输入一个2~7位的整数,然后判断它是否是一个runaround数.一个N位的runaround数具有以下的特点. (1) 该整数有N位,每一位数 ...
- 蓝桥杯练习题 回文数
蓝桥杯练习题 回文数 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数. 输出格式 按从小到大的顺序输出满足条件的四位十进制数. #include< ...
- 蓝桥杯c语言试题幸运数,蓝桥杯 历届试题 幸运数 dfs
时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...
最新文章
- 关于IT企业如何建立内部wiki
- POJ1038 Bugs Integrated, Inc.
- spring中是如何解析@Profile注解的
- vscode 注释_VSCode最强助攻
- ubuntu安装python3.6_如何在Ubuntu19.04上安装Python3.6?
- 广播电视加速技术迭代,用新技术拥抱行业转型
- 使用C++的方式实现AES算法
- poj1949Chores(建图或者dp)
- MySQL笔记-binlog理论及binlog回滚恢复数据
- php算法求出一个数可以被分解成多少个_最全的小学干货:34个数学重难点公式(三)...
- 1.10_merge_sort_归并排序
- Theme Section HDU - 4763(些许暴力)
- showdialog url访问页面_静态url在搜索引擎优化中的重要作用
- 语音识别结合应用场景 各位大咖也有一些精彩论点
- OpenInfra中国日志愿者第三次会议召开
- 虎胆龙威5java7723,汉米尔顿腕表联手《虎胆龙威5》再度演绎热血豪情
- Android开发之通过浏览器链接打开任意app页面
- 小荷特卖:切中女装童装品类、聚焦三线以下城镇市场的闪购平台
- 最常见的20道jQuery经典面试题
- thinksnsv4.6运行php,SNS开源社交系统ThinkSNS V4.6.0