开始: 2026-09-23 00:00:00

26.9复赛模拟赛02

结束: 2026-09-24 07:00:00
当前  2026-11-04 13:29:44  类型: IOI  状态: 已经结束 

P5. 最少交换(Minimum Swap)
描述

给定 (1,2,\ldots,N) 的一个排列 P=(P_1,P_2,\ldots,P_N)。这里保证 P 不等于 (1,2,\ldots,N)。

你想通过执行 0 次以上以下操作使 P 与数列 (1,2,\ldots,N) 一致:

- 选择满足 1 \le i < j \le N 的整数对 (i,j),交换 P_i 与 P_j 的值。

设使 P 与数列 (1,2,\ldots,N) 一致所需的最少操作次数为 K。

求所有"用恰好 K 次操作使 P 变为有序数列的操作序列"中,作为**第 1 次**操作可能出现的操作的数量。当且仅当选择的整数对 (i,j) 不同时,两个操作视为不同。

输入

输入按以下格式给出:

N

P_1 P_2 ... P_N


输出

输出答案。

样例

输入

5
3 1 4 2 5

输出

6

输入

20
15 5 13 17 9 11 20 4 14 16 6 3 8 19 12 7 10 18 2 1

输出

77

输入

5
4 5 2 1 3

输出

4
提示

- 2 \le N \le 3 \times 10^5

- 1 \le P_i \le N(1 \le i \le N)


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交