#2722. 徐老师的生成树

徐老师的生成树

题目描述

徐老师最近又又又在出题了!

这天他需要生成一棵二叉树,这棵二叉树有 nn 个节点,其中节点编号 1n1 \sim n,没有属性

但是这棵树的每条边是存在边权的,边权只会从 0/10/1 中随机生成

徐老师简化了自己题目的题意:对于生成树的要求如下:

给定 mm 个条件,每个条件包含三个信息 u,v,opu,v,op

  1. op=0op = 0 则表示从 uuvv 的路径边权之和必须为偶数
  2. op=1op = 1 则表示从 uuvv 的路径边权之和必须为奇数

现在徐老师想知道,一共有多少种不同的满足条件的所有条件的生成树?

由于答案可能很大,请你将答案对 998244353998244353 取模后输出

输入格式

输入第一行包含两个整数 n,mn,m ,含义如题

接下来 n1n - 1 行,每行包含两个整数 u,vu,v 表示一条树边,连接了 u,vu,v 两个节点

接下去 mm 行,每行包含三个整数 u,v,opu,v,op,表示一个条件,含义如题

输出格式

输出一个整数表示有多少种不同的生成树

数据范围

数据编号 n,mn,m 特殊性质
141 \sim 4 n,m10n,m\leq 10
575 \sim 7 n,m20n,m\leq 20
88 n1000n\leq 1000 m=1m=1 且保证树是一条链
99 m=2m=2 且保证树是一条链
1010 n100000n\leq 100000
111211 \sim 12 m=2m=2
131413 \sim 14 n,m100n,m\leq 100
151615 \sim 16 n,m5000n,m\leq 5000
172017 \sim 20 n,m100000n,m\leq 100000

样例输入1

3 0
1 2
2 3

样例输出1

4

样例解释1

没有任何限制,一共两条边,边权任意,则答案为 22=42 * 2 = 4

样例输入2

3 2
1 2
1 3
1 2 0
1 3 0

样例输出2

1

样例解释1

只存在一种情况,两条边的边权均为 00 才满足所有条件

样例输入3

3 1
1 2
2 3
1 2 1

样例输出3

2

样例解释1

只需要满足 121-2 这条边的权值为 11232-3 这条边的权值任意,则答案为 22