CF1631B.Fun with Even Subarrays
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a of n elements. You can apply the following operation to it any number of times:
- Select some subarray from a of even size 2k that begins at position l ( 1≤l≤l+2⋅k−1≤n , k≥1 ) and for each i between 0 and k−1 (inclusive), assign the value al+k+i to al+i .
For example, if a=[2,1,3,4,5,3] , then choose l=1 and k=2 , applying this operation the array will become a=[3,4,3,4,5,3] .
Find the minimum number of operations (possibly zero) needed to make all the elements of the array equal.
输入格式
The input consists of multiple test cases. The first line contains a single integer t ( 1≤t≤2⋅104 ) — the number of test cases. Description of the test cases follows.
The first line of each test case contains an integer n ( 1≤n≤2⋅105 ) — the length of the array.
The second line of each test case consists of n integers a1,a2,…,an ( 1≤ai≤n ) — the elements of the array a .
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 .
输出格式
Print t lines, each line containing the answer to the corresponding test case — the minimum number of operations needed to make equal all the elements of the array with the given operation.
输入输出样例
输入#1
5 3 1 1 1 2 2 1 5 4 4 4 2 4 4 4 2 1 3 1 1
输出#1
0 1 1 2 0
说明/提示
In the first test, all elements are equal, therefore no operations are needed.
In the second test, you can apply one operation with k=1 and l=1 , set a1:=a2 , and the array becomes [1,1] with 1 operation.
In the third test, you can apply one operation with k=1 and l=4 , set a4:=a5 , and the array becomes [4,4,4,4,4] .
In the fourth test, you can apply one operation with k=1 and l=3 , set a3:=a4 , and the array becomes [4,2,3,3] , then you can apply another operation with k=2 and l=1 , set a1:=a3 , a2:=a4 , and the array becomes [3,3,3,3] .
In the fifth test, there is only one element, therefore no operations are needed.