atcoder#CF17EXHIBITIONA. Awkward

Awkward

配点 : 10001000

問題文

ButCoder株式会社 は、プログラミングコンテストサイト「ButCoder」の開発や運営を主な事業とするスタートアップ企業です。

ButCoder社には社長を含めて NN 人の社員が在籍し、社長以外の各社員は直属の上司を一人だけ持ちます。各社員には 11 から NN までの重複しない社員番号が割り当てられており、社員番号 ii の社員は社員 ii と呼ばれます。社長は社員 11 であり、社員 ii (2iN)(2 \leq i \leq N) の直属の上司は社員 bib_i (1bi<i)(1 \leq b_i < i) です。

ButCoder社員一同の集合写真を撮影するべく、全社員がButCoder本社の大広間に集まりました。この大広間はとても広く、NN 人全員が横一列に並ぶことができます。しかし、彼らはどのような順番で並ぶかを決めかねています。どういうわけか、彼らは社長以外みな、自分の直属の上司と隣り合って並ぶことを避けたいようです。

NN 人の社員の並び方であって、彼らの希望を満たすものは何通り存在するでしょうか?その個数を 109+710^9+7 で割ったあまりを求めてください。

制約

  • 2N20002 \leq N \leq 2000
  • 1bi<i1 \leq b_i < i (2iN)(2 \leq i \leq N)

入力

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

NN

b2b_2

b3b_3

::

bNb_N

出力

NN 人の社員の並び方であって、社長を除くどの社員も自分の直属の上司と隣り合わないようなものの個数を 109+710^9+7 で割ったあまりを出力せよ。

4
1
2
3
2

以下、社員 AA が社員 BB の直属の上司であることを ABA \to B と表記します。

このケースでは、社員の主従関係は 12341 \to 2 \to 3 \to 4 となっています。以下の 22 通りの並び方が全社員の希望を満たします。

  • 2,4,1,32, 4, 1, 3
  • 3,1,4,23, 1, 4, 2

なお、後者は前者を左右に反転したものですが、これらは個別に数えます。

3
1
2
0

社員の主従関係は 1231 \to 2 \to 3 となっています。33 人の社員がどのように並んでも、社員 22, 33 の希望のうち少なくとも一方に反するため、答えは 00 通りです。

5
1
1
3
3
8

社員の主従関係は次の図のようになっています。

以下の 88 通りの並び方が全社員の希望を満たします。

  • 1,4,5,2,31, 4, 5, 2, 3
  • 1,5,4,2,31, 5, 4, 2, 3
  • 3,2,4,1,53, 2, 4, 1, 5
  • 3,2,4,5,13, 2, 4, 5, 1
  • 3,2,5,1,43, 2, 5, 1, 4
  • 3,2,5,4,13, 2, 5, 4, 1
  • 4,1,5,2,34, 1, 5, 2, 3
  • 5,1,4,2,35, 1, 4, 2, 3
15
1
2
3
1
4
2
7
1
8
2
8
1
8
2
97193524