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

    ID: 12267 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>二分O2优化前缀和差分双指针 two-pointer梦熊比赛

【MX-J2-T4】Turtle and Cycles

背景

原题链接:https://oier.team/problems/J2E。

题目描述

给你一个环形的 0∼n−10 \sim n - 1 的排列 a0,a1,…,an−1a_0, a_1, \ldots, a_{n - 1}。

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

一个位置 i∈[0,n−1]i \in [0, n - 1] 是好的当且仅当 a(i−1) mod n<aia_{(i - 1) \bmod n} < a_i 且 a(i+1) mod n<aia_{(i + 1) \bmod n} < a_i。

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

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

输入格式

本题有多组测试数据。

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

对于每组测试数据:

第一行包含一个正整数 nn。

第二行包含 nn 个非负整数 a0,a1,…,an−1a_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。

【数据范围】

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

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

对于所有数据,满足 1≤T≤1041 \le T \le 10^4,2≤n,∑n≤2⋅1052 \le n, \sum n \le 2 \cdot 10^5,0≤ai≤n−10 \le a_i \le n - 1,aa 是一个 0∼n−10 \sim n - 1 的排列。