atcoder#AGC052F. [AGC052F] Tree Vertices XOR
[AGC052F] Tree Vertices XOR
配点 : 点
問題文
頂点の木が与えられます。 木の頂点には から までの番号が付けられており、 番目の辺は頂点 を結びます。
はじめ、木の各頂点には という数が書かれています。
回の操作で、あなたは以下を行えます。
- 木から頂点 を選ぶ。 に隣接する頂点全てに書き込まれた値の XOR が であるとする。 に書かれた値が であるとして、この値を に置き換える。
この操作を任意の有限回( 回も含む)行えるとして、得られる木の形態は何通りあるでしょうか。この数は大きい可能性があるため、これを で割った余りを出力してください。
ここで、木の つの形態は、書かれた数が異なるような頂点 が存在するときに異なるとみなされます。
制約
- 入力が表すグラフは木である。
入力
入力は以下の形式で標準入力から与えられる。
出力
初期状態から得られる木の形態の個数を で割った余りを出力せよ。
4
1 2
2 3
3 4
10
頂点 に が書かれている形態を と表すと、到達可能な形態は , , , , , , , , , です。
5
1 2
1 3
1 4
1 5
24
6
1 3
2 3
3 4
4 5
4 6
40
9
1 2
2 3
1 4
4 5
1 6
6 7
7 8
8 9
255