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 翻译