AT_arc114_b [ARC114B] Special Subsets
题目描述
设 $S$ 为由 $1$ 到 $N$ 的所有整数构成的集合。
$f$ 是一个从 $S$ 到 $S$ 的函数,$f(1),\ f(2),\ \cdots,\ f(N)$ 的值分别为 $f_1,\ f_2,\ \cdots,\ f_N$。
请计算满足以下两个条件的 $S$ 的非空子集 $T$ 的个数,并将结果对 $998244353$ 取模:
- 对于所有 $a \in T$,都有 $f(a) \in T$。
- 对于所有 $a, b \in T$,若 $a \neq b$,则 $f(a) \neq f(b)$。
输入格式
输入以如下格式从标准输入给出:
> $N$ $f_1$ $f_2$ $\ldots$ $f_N$
输出格式
输出满足条件的 $S$ 的非空子集的个数,对 $998244353$ 取模后的结果。
说明/提示
### 限制条件
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq f_i \leq N$
- 输入均为整数
### 样例解释 1
$f(1) = 2,\ f(2) = 1$。由于 $f(1) \neq f(2)$,第二个条件总是满足,但根据第一个条件,$1$ 和 $2$ 必须同时包含在 $T$ 中。
### 样例解释 2
$f(1) = f(2) = 1$。由于第一个条件,$1$ 必须属于 $T$,而根据第二个条件,$2$ 不能属于 $T$。
### 样例解释 3
$f(1) = 1,\ f(2) = 2,\ f(3) = 3$。第一个和第二个条件始终满足,因此 $S$ 的所有非空子集都满足条件。
由 ChatGPT 4.1 翻译