给定 (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 |