atcoder#ARC121F. [ARC121F] Logical Operations on Tree

[ARC121F] Logical Operations on Tree

配点 : 800800

問題文

11 から NN の番号がついた NN 頂点の木が与えられます。

ii 番目の辺は頂点 aia_ibib_i をつないでいます。

すぬけ君は頂点には 01 のラベルを、辺には ANDOR のラベルをつけることにしました。 頂点と辺へのラベルのつけ方は 22N12^{2N-1} 通りあります。それらのうち下記の条件を満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

条件:操作N1N-1 回行ったのち、残った頂点についているラベルが 1 になるような操作手順が存在する。操作は下記の手順からなる。

  • 辺を 11 本選んで縮約する(消された 22 個の頂点に書かれていたラベルを x,yx,y、消された辺に書かれていたラベルを op\mathrm{op} とする)。
  • op\mathrm{op}AND ならば AND(x,y)\mathrm{AND}(x,y) を、OR ならば OR(x,y)\mathrm{OR}(x,y) を新たな頂点にラベルとしてつける。

注記

  • 演算 AND\mathrm{AND} の定義は次の通りです:$\mathrm{AND}(0,0)=(0,1)=(1,0)=0,\mathrm{AND}(1,1)=1$
  • 演算 OR\mathrm{OR} の定義は次の通りです:OR(1,1)=(0,1)=(1,0)=1,OR(0,0)=0\mathrm{OR}(1,1)=(0,1)=(1,0)=1,\mathrm{OR}(0,0)=0
  • 頂点 ss と頂点 tt を結ぶ辺を縮約する際は、その辺を取り除くと同時に 22 頂点を併合します。縮約後の木において、併合により生まれた頂点と頂点 uu を結ぶ辺が存在するのは、縮約前の木において ssuu を結ぶ辺または ttuu を結ぶ辺が存在するときであり、またそのときに限られます。

制約

  • 与えられる入力は全て整数
  • 2N1052 \leq N \leq 10^{5}
  • 1ai,biN1 \leq a_i, b_i \leq N
  • 与えられるグラフは木

入力

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

NN

a1a_1 b1b_1

\vdots

aN1a_{N-1} bN1b_{N-1}

出力

問題文中の条件を満たすラベルのつけ方の個数を 998244353998244353 で割ったあまりを出力せよ。

2
1 2
4
20
7 3
20 18
16 12
7 2
10 5
18 16
16 3
4 11
7 15
8 1
6 1
12 13
15 5
19 17
7 1
9 8
7 17
16 14
11 7
283374562
  • 998244353998244353 で割ったあまりを出力するのを忘れずに。