#abc264h. [abc264_h]Perfect Binary Tree
[abc264_h]Perfect Binary Tree
問題文
頂点に の番号が付いた、 頂点の根付き木があります。
根は頂点 であり、頂点 について、その親は です。
整数 に対し次の問題を解いてください。
番号が 以上 以下の頂点を、頂点 を含むようにいくつか選ぶ方法は 通りあります。
そのうち、選ばれた頂点集合から誘導される部分グラフの形状が頂点 を根とする (頂点数がある正整数 を用いて と表せるような) 完全二分木になるような頂点の選び方はいくつですか?
答えは非常に大きくなる場合があるので、 で割った余りを求めてください。
誘導される部分グラフとは?
あるグラフ から、一部の頂点を選んだ集合を とします。この頂点集合 から誘導される部分グラフ は以下のように構成されます。
-
の頂点集合は と一致させます。
-
その後、 に以下のように辺を追加します。
-
を満たす全ての頂点対 について、 中に を結ぶ辺が存在すれば、 にも を結ぶ辺を追加する。
完全二分木とは? 完全二分木とは、以下の全ての条件を満たす根付き木です。
- 葉以外の全ての頂点が、ちょうど つの子を持つ。
- 全ての葉が根から等距離にある。
ただし、頂点が つで辺が 本のグラフも完全二分木であるものとします。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
行出力せよ。 そのうち ( ) 行目には についての答えを整数として出力せよ。
入力例 1
10
1 1 2 1 2 5 5 5 1
出力例 1
1
1
2
2
4
4
4
5
7
10
- であるとき
- であるとき
- であるとき
- であるとき
- であるとき
- であるとき
が数えるべき頂点の選び方となります。
入力例 2
1
出力例 2
1
である場合、入力の 行目は空行です。
入力例 3
10
1 2 3 4 5 6 7 8 9
出力例 3
1
1
1
1
1
1
1
1
1
1
入力例 4
13
1 1 1 2 2 2 3 3 3 4 4 4
出力例 4
1
1
2
4
4
4
4
4
7
13
13
19
31