#P15745. [JAG 2024 Summer Camp #3] Commutativity
[JAG 2024 Summer Camp #3] Commutativity
说明
给定一个函数 $F: \{1, 2, \ldots, N\} \rightarrow \{1, 2, \ldots, N\}$。换言之, 是一个接收 到 之间(含端点)的整数 并返回 到 之间(含端点)的整数 的函数。你的任务是计算满足 与 在复合运算下可交换的函数 $G: \{1, 2, \ldots, N\} \rightarrow \{1, 2, \ldots, N\}$ 的数量:即对于任意 ,都有 成立。由于这个数可能很大,请输出答案对 取模的结果。
输入格式
输入包含一个单独的测试用例,格式如下:
$$\begin{aligned} & N \\ & F_{1} \ F_{2} \ \ldots \ F_{N} \end{aligned}$$第一行包含一个整数 ,取值范围为 到 (含端点)。第二行包含 个正整数 。对于每个 , 表示 的值。保证 。
输出格式
输出满足条件的函数 $G: \{1, 2, \ldots, N\} \rightarrow \{1, 2, \ldots, N\}$ 的数量,结果对 取模。
5
4 5 3 2 1
5
8
2 3 1 3 6 7 5 5
64
10
3 1 4 1 5 9 2 6 5 3
64
15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
567381138
京公网安备 11011102002149号