309143: CF1631B. Fun with Even Subarrays
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Fun with Even Subarrays
题意翻译
给定一个长度为 $n$ 的数据 $a$。你可以执行若干次操作,每次操作你可以选择一个位置 $i$ 和一个整数 $k$,但需要保证 $1\leqslant l\leqslant l+2\cdot k-1\leqslant n$,$k\geqslant 1$。然后对于所有的 $0\leqslant j\leqslant k-1$,将 $a_{i+j}$ 的值替换为 $a_{i+k+j}$。你希望最终得到一个所有元素的值相等的数组,求最小的操作次数。 数据范围: - $t$ 组数据,$1\leqslant t\leqslant 2\times 10^4$。 - $1\leqslant n,\sum n\leqslant 2\times 10^5$。 - $1\leqslant a_i\leqslant n$。 Translated by Eason_AC 2022.1.28题目描述
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\le l \le l+2\cdot{k}-1\le n $ , $ k \ge 1 $ ) and for each $ i $ between $ 0 $ and $ k-1 $ (inclusive), assign the value $ a_{l+k+i} $ to $ a_{l+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 \leq t \leq 2 \cdot 10^4 $ ) — the number of test cases. Description of the test cases follows. The first line of each test case contains an integer $ n $ ( $ 1 \leq n \leq 2 \cdot 10^5 $ ) — the length of the array. The second line of each test case consists of $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \leq a_i \leq n $ ) — the elements of the array $ a $ . It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .
输出格式
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