QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 512 MB Points totaux : 100

#12228. 伽罗瓦

Statistiques

Evariste 第三次尝试参加 École Polytechnique 的入学考试。他很快就解决了所有题目,但考官指责他缺乏解释。考官试图让 Evariste 失败,并给了他以下任务:对于给定的长度为 $N$ 的排列 $p$,计算满足对于所有 $1 \le i \le N$ 都有 $p_{q_i} = q_{p_i}$ 的偶排列 $q$ 的数量。由于这个数字可能非常大,考官希望得到它对 $10^9 + 7$ 取模的结果。

如果一个排列包含偶数个逆序对,则称其为偶排列。排列 $p$ 的逆序对是指满足 $i < j$ 且 $p_i > p_j$ 的索引对 $(i, j)$。

不幸的是,对于完全不知道正确答案的考官来说,Galois 在一秒钟内就解决了这个问题。你应该帮助考官告诉他答案,否则年轻的 Evariste 又会被拒绝。

输入格式

第一行包含一个整数 $N$,表示排列的长度 ($1 \le N \le 500\,000$)。

第二行描述排列 $p$ 本身,包含 $N$ 个整数 $p_i$ ($1 \le p_i \le N$,$i \neq j$ 时 $p_i \neq p_j$)。

输出格式

计算满足条件 $p_{q_i} = q_{p_i}$ 的偶排列 $q$ 的数量,并输出其对 $10^9 + 7$ 取模的结果。

样例

样例输入 1

3
3 1 2

样例输出 1

3

样例输入 2

3
2 1 3

样例输出 2

1

说明

在第一个样例中,有三个合适的排列:$(1, 2, 3), (2, 3, 1), (3, 1, 2)$。它们都是偶排列。

在第二个样例中,有两个合适的排列:$(1, 2, 3), (2, 1, 3)$。然而,只有第一个排列是偶排列。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.