AT_arc140_d [ARC140D] One to One
题目描述
对于所有元素都在 $1$ 到 $N$ 之间的长度为 $N$ 的整数序列 $X=(X_1,X_2,\dots,X_N)$,我们定义如下问题,并将其答案记为 $f(X)$。
> 有一个包含 $N$ 个顶点的无向图 $G$。($G$ 可能包含重边和自环。)$G$ 有 $N$ 条边,第 $i$ 条边连接顶点 $i$ 和顶点 $X_i$。请计算 $G$ 的连通分量个数。
给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\dots,A_N)$,其中每个 $A_i$ 是 $1$ 到 $N$ 之间的整数,或者是 $-1$。
请考虑所有满足 $A_i\neq -1 \Rightarrow A_i = X_i$ 的、所有元素都在 $1$ 到 $N$ 之间的长度为 $N$ 的整数序列 $X=(X_1,X_2,\dots,X_N)$。对于所有这样的 $X$,计算 $f(X)$ 的总和,并对 $998244353$ 取模后输出。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $A_1$ $A_2$ $\dots$ $A_N$
输出格式
输出答案。
说明/提示
## 限制条件
- $1 \leq N \leq 2000$
- 每个 $A_i$ 是 $1$ 到 $N$ 之间的整数,或者是 $-1$。
- 输入均为整数。
## 样例解释 1
满足条件的 $X$ 有以下 $3$ 种情况。
- 当 $X=(1,1,3)$ 时,答案为 $2$。
- 当 $X=(2,1,3)$ 时,答案为 $2$。
- 当 $X=(3,1,3)$ 时,答案为 $1$。
因此答案为 $2+2+1=5$。
由 ChatGPT 4.1 翻译