历届试题 连号区间数
试题 历届试题 连号区间数
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
小明这些天一直在思考这样一个奇怪而有趣的问题:
在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
思路:
区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。
#思路很简单:
是连号区间的话,区间长度一定等于这个区间的最大值-最小值 +1
区间[l,r],所以让每个位置为l,再枚举r,同时更新区间的最值。
因为我数组下标是从0开始,所以ans += (j-i) == maxx-minx;
代码:
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 5e4+5;
int a[N];
int main()
{int n;scanf("%d",&n);for(int i = 0; i < n; i++){scanf("%d",&a[i]);}long long ans = n;for(int i = 0; i < n; i++){int minx = a[i];int maxx = a[i];for(int j = i+1; j < n; j++){minx = min(minx,a[j]);maxx = max(maxx,a[j]);ans += (j-i) == maxx-minx;}}printf("%lld\n",ans);return 0;
}
历届试题 连号区间数相关推荐
- [蓝桥杯][历届试题]连号区间数
题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...
- 连号区间数(2013年第四届c/c++ b组第10题)
题目描述 标题:连号区间数 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个 ...
- [蓝桥杯] 连号区间数
[蓝桥杯] 连号区间数 峰值内存消耗 < 64M CPU消耗 < 5000ms [题目描述 - Problem Description] 小明这些天一直在思考这样一个奇怪而有趣的问题: ...
- [蓝桥杯]连号区间数[题目详解]
题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...
- 蓝桥杯 - 连号区间数(暴力)
小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得 ...
- 蓝桥杯真题-连号区间数-枚举
题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...
- 蓝桥杯历届试题-六角填数(12)
第7题:六角填数(12) 如图所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多 ...
- c语言课程设计六角填数,[蓝桥杯][历届试题]六角填数-题解(C++代码)
题目: 六角填数 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要 ...
- 蓝桥杯历届试题代码参考
蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...
最新文章
- 计算机的键盘功能,电脑键盘功能
- Centos7.5-文件的归档和压缩
- glassfish_具有GlassFish和一致性的高性能JPA –第2部分
- aac fhg lc哪一个模式_旅游没电别发愁,一个充电头,助你游遍全球
- vim 强制保存只读文件
- java 怎么调用js代码_在Java中直接调用js代码
- 动态规划——编辑距离
- 2018美赛E题所有国家气候数据
- java web程序设计任务教程——源码(全)
- 【系统分析师之路】原创章节 非功能需求设计思维导图
- 提升30%转化率的LBS网络营销神器--高精准IP定位
- 微信支付-本地测试方法-java代码
- ue4-UMG和HUD绘制UI
- 面试中可以提问面试官的问题
- 如何计算机打开桌面文件,电脑系统奔溃如何找回桌面文件?系统损坏桌面文件如何拷贝出来...
- ip地址配置 mongodb_【已解决】给MongoDB限制IP访问
- html页面点击图片名称查看图片------图片预览插件viewer.js使用
- gif录屏与gif图片合成工具
- java中的左值右值_快速了解C/C++的左值和右值
- 微软IE7更多细节大揭密(转)
热门文章
- transformer模型_【经典精读】Transformer模型深度解读
- dropout理解(一)
- 醒醒!Python已经支持中文变量名啦!
- 阿里云网盘开放申请!非会员下载 10MB/s!
- linux python软连接_Linux软链接的创建,删除,修改
- camvid数据集介绍_深度学习图像数据集介绍(MSCOCO)
- lm723大电流可调电源电路图_TE:大电流电源连接器
- linux libfcmain.so,BabyLinux制作过程详解
- 21-爬虫之scrapy框架selenium的使用08
- 机器学习:SVM代码实现,第一个变量选择最偏离KKT条件的样本点,第二个变量随机