试题 历届试题 连号区间数

资源限制
时间限制: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. [蓝桥杯][历届试题]连号区间数

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

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

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

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

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

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

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

  5. 蓝桥杯 - 连号区间数(暴力)

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

  6. 蓝桥杯真题-连号区间数-枚举

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

  7. 蓝桥杯历届试题-六角填数(12)

    第7题:六角填数(12) 如图所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多 ...

  8. c语言课程设计六角填数,[蓝桥杯][历届试题]六角填数-题解(C++代码)

    题目: 六角填数 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要 ...

  9. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

最新文章

  1. 计算机的键盘功能,电脑键盘功能
  2. Centos7.5-文件的归档和压缩
  3. glassfish_具有GlassFish和一致性的高性能JPA –第2部分
  4. aac fhg lc哪一个模式_旅游没电别发愁,一个充电头,助你游遍全球
  5. vim 强制保存只读文件
  6. java 怎么调用js代码_在Java中直接调用js代码
  7. 动态规划——编辑距离
  8. 2018美赛E题所有国家气候数据
  9. java web程序设计任务教程——源码(全)
  10. 【系统分析师之路】原创章节 非功能需求设计思维导图
  11. 提升30%转化率的LBS网络营销神器--高精准IP定位
  12. 微信支付-本地测试方法-java代码
  13. ue4-UMG和HUD绘制UI
  14. 面试中可以提问面试官的问题
  15. 如何计算机打开桌面文件,电脑系统奔溃如何找回桌面文件?系统损坏桌面文件如何拷贝出来...
  16. ip地址配置 mongodb_【已解决】给MongoDB限制IP访问
  17. html页面点击图片名称查看图片------图片预览插件viewer.js使用
  18. gif录屏与gif图片合成工具
  19. java中的左值右值_快速了解C/C++的左值和右值
  20. 微软IE7更多细节大揭密(转)

热门文章

  1. transformer模型_【经典精读】Transformer模型深度解读
  2. dropout理解(一)
  3. 醒醒!Python已经支持中文变量名啦!
  4. 阿里云网盘开放申请!非会员下载 10MB/s!
  5. linux python软连接_Linux软链接的创建,删除,修改
  6. camvid数据集介绍_深度学习图像数据集介绍(MSCOCO)
  7. lm723大电流可调电源电路图_TE:大电流电源连接器
  8. linux libfcmain.so,BabyLinux制作过程详解
  9. 21-爬虫之scrapy框架selenium的使用08
  10. 机器学习:SVM代码实现,第一个变量选择最偏离KKT条件的样本点,第二个变量随机