AT_agc052_f [AGC052F] Tree Vertices XOR

Description

[problemUrl]: https://atcoder.jp/contests/agc052/tasks/agc052_f $ N $ 頂点の木が与えられます。 木の頂点には $ 1 $ から $ N $ までの番号が付けられており、$ i $ 番目の辺は頂点 $ u_i,\ v_i $ を結びます。 はじめ、木の各頂点には $ 1 $ という数が書かれています。 $ 1 $ 回の操作で、あなたは以下を行えます。 - 木から頂点 $ v $ を選ぶ。$ v $ に隣接する頂点全てに書き込まれた値の **XOR** が $ X $ であるとする。$ v $ に書かれた値が $ a_v $ であるとして、この値を $ (a_v\ \mathrm{XOR}\ X) $ に置き換える。 この操作を任意の有限回($ 0 $ 回も含む)行えるとして、得られる木の形態は何通りあるでしょうか。この数は大きい可能性があるため、これを $ 998244353 $ で割った余りを出力してください。 ここで、木の $ 2 $ つの形態は、書かれた数が異なるような頂点 $ v $ が存在するときに異なるとみなされます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ u_1 $ $ v_1 $ $ u_2 $ $ v_2 $ $ \vdots $ $ u_{N-1} $ $ v_{N-1} $

Output Format

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

Explanation/Hint

### 制約 - $ 3\ \le\ N\ \le\ 2\cdot\ 10^5 $ - $ 1\le\ u_i,\ v_i\ \le\ N $ - $ u_i\ \neq\ v_i $ - 入力が表すグラフは木である。 ### Sample Explanation 1 頂点 $ 1,2,3,4 $ に $ a,b,c,d $ が書かれている形態を $ abcd $ と表すと、到達可能な形態は $ 1111 $, $ 1110 $, $ 1100 $, $ 1000 $, $ 0111 $, $ 0110 $, $ 0100 $, $ 0011 $, $ 0010 $, $ 0001 $ です。