atcoder#ABC252G. [ABC252G] Pre-Order

[ABC252G] Pre-Order

配点 : 600600

問題文

頂点 11 を根とした NN 頂点の根付き木があります。頂点には 1,2,,N1,2,\ldots,N の番号がついています。

根から始めて深さ優先探索を行い、行きがけ順で頂点番号を記録したところ、順に P1,P2,,PNP_1,P_2,\ldots,P_N となりました。 ただし、深さ優先探索では、現在の頂点に複数の子がある場合、まだ探索していない頂点のうち最も番号が小さい頂点へ移動することとします。

行きがけ順とは
  • 現在いる頂点 uu をまだ記録していなければ記録する。

  • その後、uu の子のうち、まだ探索していないものがあればその頂点に移動する。

  • そうでない時、uu が根であれば探索を終了する。そうでなければ、uu の親に移動する。

条件をみたす根付き木として考えられるものの数を $998244353$ で割った余りを求めてください。 ただし、ある $2$ つの「頂点 $1$ を根とした $N$ 頂点の根付き木」が異なるとは、ある根以外の頂点が存在して、その親が異なる事を言います。

制約

  • 2N5002 \leq N \leq 500
  • 1PiN1 \leq P_i\leq N
  • P1=1P_1=1
  • PiP_i はすべて異なる
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN

P1P_1 P2P_2 \ldots PNP_N

出力

条件をみたす根付き木として考えられるものの数を 998244353998244353 で割った余りを出力せよ。

4
1 2 4 3
3

条件をみたす根付き木としては次の 33 通りが考えられます。よって、 33 を出力します。

また、次のような木は考えられません。頂点 22 の子の頂点のうち、番号の小さい頂点 33 が頂点 44 より先に探索され、 このときの行きがけ順は 1,2,3,41,2,3,4 となるからです。

8
1 2 3 5 6 7 8 4
202