[ARC118E] Avoid Permutations

题意翻译

对于一个排列 $P$,定义 $F(P)$ 如下: 对于一个 $(N+2)\times (N+2)$ 的网格图,行列标号为 $0\sim N+1$,从 $(0,0)$ 走到 $(N+1,N+1)$ 在不经过 $(i,P_i)$ 情况下的方案数。 给定一个残缺的排列,对于其所有补全求函数之和。 translated by cszyf

题目描述

[problemUrl]: https://atcoder.jp/contests/arc118/tasks/arc118_e $ (1,\ 2,\ \ldots,\ N) $ の順列 $ P\ =\ (P_1,\ P_2,\ \ldots,\ P_N) $ に対して 次の問題を考え、その答えを $ f(P) $ と書くことにします。 > $ (N+2)\times\ (N+2) $ のマス目があり、行には上から順に $ 0,\ 1,\ \ldots,\ N+1 $ の番号が、列には左から順に $ 0,\ 1,\ \ldots,\ N+1 $ の番号がつけられています。$ i $ 行目・$ j $ 列目のマスを $ (i,j) $ と表します。 > > $ (0,0) $ を出発して、右または下の隣り合うマスへの移動を繰り返すことで、$ (N+1,N+1) $ まで移動する経路を考えます。ただし、$ 1\leq\ i\leq\ N $ に対してマス $ (i,\ P_i) $ は通ってはいけません。このような経路は何通りあるでしょうか? 正の整数 $ N $ および整数列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) $ が与えられます。各 $ A_i $ は、$ -1 $ であるか、あるいは $ 1 $ 以上 $ N $ 以下の整数です。 $ (1,\ 2,\ \ldots,\ N) $ の順列 $ P\ =\ (P_1,\ P_2,\ \ldots,\ P_N) $ であって、$ A_i\neq\ -1\ \implies\ P_i\ =\ A_i $ を満たすものを考えます。そのようなすべての $ P $ に対する $ f(P) $ の総和を、$ 998244353 $ で割った余りを求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられます。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

输出格式


答えを出力してください。

输入输出样例

输入样例 #1

4
1 -1 4 -1

输出样例 #1

41

输入样例 #2

4
4 3 2 1

输出样例 #2

2

输入样例 #3

3
-1 -1 -1

输出样例 #3

48

说明

### 制約 - $ 1\leq\ N\leq\ 200 $ - $ A_i\ =\ -1 $ あるいは $ 1\leq\ A_i\leq\ N $ - $ i\neq\ j $ に対し、$ A_i\neq\ -1,\ A_j\neq\ -1 $ ならば $ A_i\neq\ A_j $ ### Sample Explanation 1 $ 2 $ つの順列 $ P\ =\ (1,2,4,3) $ および $ P\ =\ (1,3,4,2) $ に対する $ f(P) $ の和が求めるものです。それぞれの $ P $ の場合に、マス目において通れないマスを図示すると、次のようになります(通れるマス・通れないマスをそれぞれ `.` `#` で表しています)。 ``` ...... ...... .#.... .#.... ..#... ...#.. ....#. ....#. ...#.. ..#... ...... ...... P=(1,2,4,3) P=(1,3,4,2) ``` - 順列 $ P\ =\ (1,2,4,3) $ の場合には $ f(P)\ =\ 18 $ です。 - 順列 $ P\ =\ (1,3,4,2) $ の場合には $ f(P)\ =\ 23 $ です。 これらの和である $ 41 $ が答えとなります。 ### Sample Explanation 2 この例では、計算対象となる順列 $ P $ は $ P\ =\ (4,3,2,1) $ のひとつです。 ### Sample Explanation 3 \- 順列 $ P\ =\ (1,2,3) $ の場合には $ f(P)\ =\ 10 $ です。 - 順列 $ P\ =\ (1,3,2) $ の場合には $ f(P)\ =\ 6 $ です。 - 順列 $ P\ =\ (2,1,3) $ の場合には $ f(P)\ =\ 6 $ です。 - 順列 $ P\ =\ (2,3,1) $ の場合には $ f(P)\ =\ 12 $ です。 - 順列 $ P\ =\ (3,1,2) $ の場合には $ f(P)\ =\ 12 $ です。 - 順列 $ P\ =\ (3,2,1) $ の場合には $ f(P)\ =\ 2 $ です。 これらの和である $ 48 $ が答えとなります。