hzCPPOJ

错排

时间限制:  3 s      内存限制:   512 MB
提交:15     正确:2     分值:99

题目描述

给定一个长度为 \(n\) 的排列 \(P\)。找出其子段 \([l\dots r]\) (\(l \le r\)) 的数量,使其满足以下条件:

\(\forall 1 \le i \le r-l+1\),该子段的第 \(i\) 个元素(即 \(P_{l+i-1}\))不是该子段中第 \(i\) 小的元素。

排列是一个长度为\(n\)且包含数字\(1 \dots n \)恰好各一次的序列。

输入

有多个测试用例。

第一行包含一个整数 \(T\) (\(1 \le T \le 1000\)),表示测试用例的数量。

对于每个测试用例,第一行包含一个整数 \(n\) (\(1 \le n \le 5000\)),表示排列的长度。

接下来的行包含 \(n\) 个整数 \(p_{1}, p_{2} \dots p_{n}\),表示排列。

保证 \(n\) 的总和不超过 \(5000\)。

输出

对于每组测试用例,输出一行一个整数表示答案

样例

样例输入:
4 5 2 4 1 5 3 5 1 4 5 3 2 2 2 1 6 2 5 4 3 6 1
样例输出:
5 4 1 6

提示

对于 \( 30\% \)的数据,满足\( n \le 50 \)

对于另外 \( 20\% \)的数据,满足\(P_{i} \neq i \)的位置不超过20个

对于所有数据,满足\(1\le n \le 5000 , 1\le \sum n \le 5000 \)

提交人

GGyan