atcoder#ABC264H. [ABC264Ex] Perfect Binary Tree

[ABC264Ex] Perfect Binary Tree

配点 : 600600

問題文

頂点に 1,2,,N1,2,\dots,N の番号が付いた、 NN 頂点の根付き木があります。 根は頂点 11 であり、頂点 i2i \ge 2 について、その親は Pi(です。整数P_i( です。 整数 k=1,2,\dots,N$ に対し次の問題を解いてください。

番号が 11 以上 kk 以下の頂点を、頂点 11 を含むようにいくつか選ぶ方法は 2k12^{k-1} 通りあります。 そのうち、選ばれた頂点集合から誘導される部分グラフの形状が頂点 11 を根とする (頂点数がある正整数 dd を用いて 2d12^d-1 と表せるような) 完全二分木になるような頂点の選び方はいくつですか? 答えは非常に大きくなる場合があるので、998244353998244353 で割った余りを求めてください。

誘導される部分グラフとは?

あるグラフ GG から、一部の頂点を選んだ集合を SS とします。この頂点集合 SS から誘導される部分グラフ HH は以下のように構成されます。

  • HH の頂点集合は SS と一致させます。
  • その後、 HH に以下のように辺を追加します。
  • i,jS,i<ji,j \in S, i < j を満たす全ての頂点対 (i,j)(i,j) について、 GG 中に i,ji,j を結ぶ辺が存在すれば、 HH にも i,ji,j を結ぶ辺を追加する。
完全二分木とは?

完全二分木とは、以下の全ての条件を満たす根付き木です。

  • 葉以外の全ての頂点が、ちょうど $2$ つの子を持つ。
  • 全ての葉が根から等距離にある。

ただし、頂点が 1 つで辺が 0 本のグラフも完全二分木であるものとします。

制約

  • 入力は全て整数
  • 1N3×1051 \le N \le 3 \times 10^5
  • 1Pi<i1 \le P_i < i

入力

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

NN

P2P_2 P3P_3 \dots PNP_N

出力

NN 行出力せよ。 そのうち ii ( 1iN1 \le i \le N ) 行目には k=ik=i についての答えを整数として出力せよ。

10
1 1 2 1 2 5 5 5 1
1
1
2
2
4
4
4
5
7
10
  • k1k \ge 1 であるとき {1}\{1\}
  • k3k \ge 3 であるとき {1,2,3}\{1,2,3\}
  • k5k \ge 5 であるとき {1,2,5},{1,3,5}\{1,2,5\},\{1,3,5\}
  • k8k \ge 8 であるとき {1,2,4,5,6,7,8}\{1,2,4,5,6,7,8\}
  • k9k \ge 9 であるとき {1,2,4,5,6,7,9},{1,2,4,5,6,8,9}\{1,2,4,5,6,7,9\},\{1,2,4,5,6,8,9\}
  • k=10k = 10 であるとき {1,2,10},{1,3,10},{1,5,10}\{1,2,10\},\{1,3,10\},\{1,5,10\}

が数えるべき頂点の選び方となります。

1
1

N=1N=1 である場合、入力の 22 行目は空行です。

10
1 2 3 4 5 6 7 8 9
1
1
1
1
1
1
1
1
1
1
13
1 1 1 2 2 2 3 3 3 4 4 4
1
1
2
4
4
4
4
4
7
13
13
19
31