Problem2379--暑假提高组模拟测试卷七 T2 奇偶树

2379: 暑假提高组模拟测试卷七 T2 奇偶树

Time Limit: 1.000 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Submit] [Status] [Web Board] [Creator:][下载测试数据]

Description

二爷又有一棵 n 个节点的树,节点编号为 1\sim n。树的边权的取值只有 0 和 1,且应当满足 Q 个条件。每个条件形如 (u, v, x),其中 u 和 v 是树中节点的编号,x 是 0 或 1。

条件的含义为树上从 u 到 v 的路径上的边权和在模 2 意义下应与 x 相等(即若 x = 0 则和应为偶数;若 x = 1 则和应为奇数)。

二爷现在想要知道,在满足这 Q 个条件的前提下,整棵树的边权有多少种方案。由于答案可能很大,请将方案数对 10^9 + 7 取模后输出。



Input

第一行包含两个整数 n 和 Q。

接下来 n-1 行,每行包含两个整数 u 和 v,代表一条编号为 u 和 v 的节点之间有一条树边。

接下来 Q 行,每行包含三个整数 u,v 和 x,代表一个条件。



Output

输出一行,表示可能的方案数。

Sample Input

## 样例 #1

### 样例输入 #1

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

### 样例输出 #1

```
1
```

## 样例 #2

### 样例输入 #2

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

### 样例输出 #2

```
4
```

## 样例 #3

### 样例输入 #3

```
3 1
1 2
2 3
1 2 1
```

### 样例输出 #3

```
2
```

HINT

【样例说明】

在第一个样例中,所有边权都只能取 0,因此答案为 1。

在第二和样例中,一共有两条边,而且没有任何限制,因此答案为 2×2 =4。

在第三个样例中,节点 1 和 2 之间的边权必须为 1,而节点 2 和 3 之间的边权可以任意取值,因此答案为 2。

【数据范围】




Source/Category

 

[Submit] [Status]