atcoder#AGC052F. [AGC052F] Tree Vertices XOR

[AGC052F] Tree Vertices XOR

配点 : 20002000

問題文

NN 頂点の木が与えられます。 木の頂点には 11 から NN までの番号が付けられており、ii 番目の辺は頂点 ui,viu_i, v_i を結びます。

はじめ、木の各頂点には 11 という数が書かれています。

11 回の操作で、あなたは以下を行えます。

  • 木から頂点 vv を選ぶ。vv に隣接する頂点全てに書き込まれた値の XORXX であるとする。vv に書かれた値が ava_v であるとして、この値を (av XOR X)(a_v\ \mathrm{XOR}\ X) に置き換える。

この操作を任意の有限回(00 回も含む)行えるとして、得られる木の形態は何通りあるでしょうか。この数は大きい可能性があるため、これを 998244353998244353 で割った余りを出力してください。

ここで、木の 22 つの形態は、書かれた数が異なるような頂点 vv が存在するときに異なるとみなされます。

制約

  • 3N21053 \le N \le 2\cdot 10^5
  • 1ui,viN1\le u_i, v_i \le N
  • uiviu_i \neq v_i
  • 入力が表すグラフは木である。

入力

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

NN

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uN1u_{N-1} vN1v_{N-1}

出力

初期状態から得られる木の形態の個数を 998244353998244353 で割った余りを出力せよ。

4
1 2
2 3
3 4
10

頂点 1,2,3,41,2,3,4a,b,c,da,b,c,d が書かれている形態を abcdabcd と表すと、到達可能な形態は 11111111, 11101110, 11001100, 10001000, 01110111, 01100110, 01000100, 00110011, 00100010, 00010001 です。

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