题目描述
给定一个长度为N的整数序列X=(X1,X2,dots,XN),其中Xi的取值范围为1到N(包含1和N),考虑下面的问题,并定义f(X)为其答案。
给定一个无向图G,它有N个顶点(可能存在多重边和自环)。G有N条边,其中第i条边连接了顶点i和顶点Xi。请计算G中的连通分量数量。
给定一个长度为N的整数序列A=(A1,A2,dots,AN),其中每个Ai是介于1和N(包含1和N)之间的整数或−1。
考虑一个长度为N的整数序列X=(X1,X2,dots,XN),其中Xi的取值范围为1到N,满足Aineq−1RightarrowAi=Xi。计算所有满足条件的X的f(X)之和,并对998244353进行取模。
约束条件
- 1leqNleq2000
- Ai是介于1和N(包含1和N)之间的整数或−1。
- 输入中的所有值均为整数。
输入
输入以标准格式给出,格式如下:
N
A1 A2 dots AN
输出
输出答案。
示例输入1
3
-1 1 3
示例输出1
5
满足条件的X有三个,如下所示。
- X=(1,1,3),对应问题的答案为2。
- X=(2,1,3),对应问题的答案为2。
- X=(3,1,3),对应问题的答案为1。
所以答案为2+2+1=5。
示例输入2
1
1
示例输出2
1
示例输入3
8
-1 3 -1 -1 8 -1 -1 -1
示例输出3
433760