问题 5712 --不再改变的数组

5712: 不再改变的数组★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 104  解决: 55
[提交][状态][命题人:]

题目描述

给定一个长度为n的数组a,我们可以对数组a执行以下操作任意次:

1)选择x=an

2)将数组a中的所有元素分为两部分:左半部分的所有元素ai<=x,右半部分的所有元素aj>x;特别提示:两部分中的元素在原数组中的相对位置不变;

(3)重新将两部分连接在一起组成一个新数组,即左半部分整体放到前面,右半部分放在后面;显然,数组长度仍然为n

例如:a=[2,4,1,5,3],此时x=3a-->[2,1,3],[4,5]-->[2,1,3,4,5]

可以确定,对数组a进行若干次上述操作之后,数组将不会再发生改变。

      请问,对于给定的数组a,至少执行多少次上述操作之后,数组a将不再发生改变?

输入

第一行只有一个整数t(1≤t≤100):测试用例的数量。

接下来共2t行,每个测试用例两行:

第一行只有一个整数n1≤n≤2e5: 数组a的长度

第二行共有n个整数:数组an个元素值(1≤ai≤1e9)

输出

输出共t行,每个测试用例一行一个整数:数组a不再发生改变所需要的最少操作次数

样例输入
Copy
3
5
2 4 1 5 3
5
5 3 2 4 1
4
1 1 1 1
样例输出
Copy
1
2
0

提示

对于第一个测试用例,第一次操作过程如下:

a=[1,4,2,5,3], x=3. [2,4,1,5,3]→[2,1,3],[4,5]→[2,1,3,4,5]

第二次及以后的操作过程如下:

a=[2,1,3,4,5], x=5. [2,1,3,4,5]→[2,1,3,4,5],[]→[2,1,3,4,5]

显然,此时数组a不再发生改变,所以所需要的最少操作次数1

对于第二个测试用例,第一次操作过程如下:

a=[5,3,2,4,1], x=1. [5,3,2,4,1]→[1],[5,3,2,4]→[1,5,3,2,4] .

第二次操作过程如下:

a=[1,5,3,2,4], x=4. [1,5,3,2,4]→[1,3,2,4],[5]→[1,3,2,4,5].

第三次及以后的操作过程如下:

a=[1,3,2,4,5], x=5. [1,3,2,4,5]→[1,3,2,4,5],[]→[1,3,2,4,5].

显然,此时数组a不再发生改变,所以所需要的最少操作次数2.

对于第三个测试用例,显然不会发生改变,所以所需要的最少操作次数等于0.

来源

 

[提交][状态]