AT_agc008_e [AGC008E] Next or Nextnext
题目描述
给定一个长度为 $N$ 的数列 $a$。请问有多少个 $1$ 到 $N$ 的整数的排列 $p$ 满足以下条件?请输出答案对 $10^9+7$ 取模的结果。
- 对于每个 $1 \leq i \leq N$,至少有 $p_i = a_i$ 或 $p_{p_i} = a_i$ 成立。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $a_1$ $a_2$ $...$ $a_N$
输出格式
输出满足条件的排列 $p$ 的个数,对 $10^9+7$ 取模。
说明/提示
### 限制条件
- $1 \leq N \leq 10^5$
- $a_i$ 是整数。
- $1 \leq a_i \leq N$
### 样例解释 1
共有以下 $4$ 种排列:
- $(1, 2, 3)$
- $(1, 3, 2)$
- $(3, 2, 1)$
- $(2, 1, 3)$
例如,排列 $(1, 3, 2)$ 中,$p_1 = 1$,$p_{p_2} = 2$,$p_{p_3} = 3$。
### 样例解释 2
只有以下 $1$ 种排列:
- $(2, 1)$
### 样例解释 3
共有以下 $2$ 种排列:
- $(2, 3, 1)$
- $(3, 1, 2)$
由 ChatGPT 4.1 翻译