atcoder#ARC121F. [ARC121F] Logical Operations on Tree

[ARC121F] Logical Operations on Tree

题目描述

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

i i 番目の辺は頂点 ai a_i bi b_i をつないでいます。

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

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

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

输入格式

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

N N a1 a_1 b1 b_1 \vdots aN1 a_{N-1} bN1 b_{N-1}

输出格式

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

题目大意

给定一棵树,给每个点填 0011,给每条边填 AND\text{AND}OR\text{OR},在所有 2n+n12^{n+n-1} 种填法中,计数有多少种满足存在一种缩边的顺序,使得每次把一条边的两个端点缩成一个点,权为原端点与边的运算值,最终点的权为 11

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

提示

注記

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

制約

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

Sample Explanation 2

- 998244353 998244353 で割ったあまりを出力するのを忘れずに。