#P10843. 【MX-J2-T4】Turtle and Cycles

    ID: 10279 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>二分O2优化前缀和差分双指针,two-pointer

【MX-J2-T4】Turtle and Cycles

题目描述

给你一个环形的 0n10 \sim n - 1排列 a0,a1,,an1a_0, a_1, \ldots, a_{n - 1}

一次操作你可以选择一个整数 i[0,n1]i \in [0, n - 1],把 aia_i 赋值成 a(i1)modn+a(i+1)modnaia_{(i - 1) \bmod n} + a_{(i + 1) \bmod n} - a_i

一个位置 i[0,n1]i \in [0, n - 1] 是好的当且仅当 a(i1)modn<aia_{(i - 1) \bmod n} < a_ia(i+1)modn<aia_{(i + 1) \bmod n} < a_i

环形序列 aa 是好的当且仅当存在恰好一个位置 i[0,n1]i \in [0, n - 1] 使得位置 ii 是好的。

求至少要进行多少次操作能让 aa 变成好的。可以证明一定有解。

输入格式

本题有多组测试数据。

第一行输入一个正整数 TT,表示测试数据组数。

对于每组测试数据:

第一行包含一个正整数 nn

第二行包含 nn 个非负整数 a0,a1,,an1a_0, a_1, \ldots, a_{n - 1}

输出格式

对于每组数据,输出一行一个整数,表示最少要进行的操作次数。

3
2
1 0
5
2 3 0 4 1
10
0 5 9 7 3 1 6 4 8 2

0
1
5

提示

【样例解释】

在第一组数据中,初始序列恰好存在一个好的位置 i=0i = 0,所以答案为 00

在第二组数据中,可以选择 i=2i = 2 操作,操作后序列变为 a=[2,3,7,4,1]a = [2, 3, 7, 4, 1]。此时序列恰好存在一个好的位置 i=2i = 2,所以答案为 11

【数据范围】

本题采用捆绑测试且开启子任务依赖。

子任务编号 分值 nn \le n\sum n \le 特殊性质 子任务依赖
11 1919 66 10410^4
22 1414 1212 11
33 2727 21032 \cdot 10^3 1,21, 2
44 22 21052 \cdot 10^5 ai=ia_i = i
55 3838 1,2,3,41, 2, 3, 4

对于所有数据,满足 1T1041 \le T \le 10^42n,n21052 \le n, \sum n \le 2 \cdot 10^50ain10 \le a_i \le n - 1aa 是一个 0n10 \sim n - 1 的排列。