P8600 [蓝桥杯 2013 省 B] 连号区间数
题目描述
小明这些天一直在思考这样一个奇怪而有趣的问题:
在 $1$ ~ $N$ 的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:
如果区间 $[L, R]$ 里的所有元素(即此排列的第 $L$个到第 $R$ 个元素)递增排序后能得到一个长度为 $R-L+1$ 的“连续”数列,则称这个区间连号区间。
其中对“连续”数列的定义:
记长度为 $m$ 的数列 $A$ 第 $i$ 个元素为 $A_i$,当 $\forall i \in [2,m],a_i=a_{i-1}+1$ 时认为该数列为“连续”数列。
当 $N$ 很小的时候,小明可以很快地算出答案,但是当 $N$ 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。
输入格式
第一行是一个正整数 $N (1 \le N \le 50000)$, 表示全排列的规模。
第二行是 $N$ 个不同的数字 $P_i(1 \le P_i \le N)$, 表示这 $N$ 个数字的某一全排列。
输出格式
输出一个整数,表示不同连号区间的数目。
说明/提示
第一个用例中,有 $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 秒, 64M。蓝桥杯 2013 年第四届省赛