#P2297. *【树状数组:逆序对】循环同构的最少交换次数[USACO10NOV] Cow Photographs G(好题)

*【树状数组:逆序对】循环同构的最少交换次数[USACO10NOV] Cow Photographs G(好题)

Description

# P2995 [USACO10NOV] Cow Photographs G

题目描述

给出一个 (1,2,,n)(1,2,⋯,n) 的排列 AA,求出 AA 最少交换多少次相邻元素能够与 (1,2,,n)(1,2,⋯,n) 循环同构。

循环同构:以下排列与 (1,2,,n)(1,2,⋯,n) 循环同构。

(n,1,2,,n1)(n,1,2,⋯,n-1) (n1,n,1,2,,n2)(n-1,n,1,2,⋯,n-2) (n2,n1,n,1,2,,n3)(n-2,n-1,n,1,2,⋯,n-3) \dots (2,,n,1)(2,⋯,n,1)

考虑一组排列如下:

左           右

3  5  4  2  1

可以先交换第二和第三个位置:

3  4  5  2  1

然后交换第四和第五个位置:

3  4  5  1  2

这样就得到一个合适的排列,只需要2次交换。

输入格式

第 1 行:一个整数:n(1n105)n(1≤n≤10^5)

下来 nn 个数,表示排列 AA

输出格式

一行一个整数,表示最少交换次数。

输入输出样例 #1

输入 #1

5 
3 5 4 2 1

输出 #1

2