atcoder#ARC121E. [ARC121E] Directed Tree

[ARC121E] Directed Tree

配点 : 700700

問題文

11 から NN の番号がついた NN 頂点の有向木が与えられます。

頂点 11 はこの木の根です。 2iN2 \leq i \leq N を満たす整数 ii について、頂点 pip_i から ii へ向かう有向辺が存在します。

aa(1,,N)(1,\ldots,N) を並び替えて得られる数列とします。また、aaii 番目の項を aia_i とします。

aa としてありうる数列は N!N! 通りあります。それらのうち、下記の条件を満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • 条件:1iN1 \leq i \leq N を満たす任意の整数 ii について、頂点 aia_i から 1 度以上辺を辿って頂点 ii へ到達することはできない。

制約

  • 与えられる入力は全て整数
  • 1N20001 \leq N \leq 2000
  • 1pi<i1 \leq p_i < i

入力

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

NN

p2p_{2} \cdots pNp_N

出力

(1,,N)(1,\ldots,N) の並び替え aa のうち、問題文中の条件を満たすものの個数を 998244353998244353 で割ったあまりを出力せよ。

4
1 1 3
4
30
1 1 3 1 5 1 1 1 8 9 7 3 11 11 15 14 4 10 11 12 1 10 13 11 7 23 8 12 18
746746186
  • 998244353998244353 で割ったあまりを出力するのを忘れずに。