编程题:并查集
我们得到了一棵树,其中有$$N$$个节点,用$$1$$到$$N$$的不同正整数表示。此外,我们从树中得到了$$M$$个节点对,形式为$$(a_{1},b_{1}),(a_{2},b_{2}),…,(a_{M},b_{M})$$。
我们需要引导树的每条边,这样对于每个给定的节点对$$(a_{i},b_{i})$$,都有一条从ai到bi或从bi到ai的路径。有多少种不同的方法可以实现这一点?
因为解可能很大,所以它需要对$$10^{9}+7$$取模。
### 输入格式:
第一行输入包含正整数$$N$$和$$M(1≤N、M≤3·10_{5})$$,分别表示树中的节点数和给定节点对数。
以下$$N-1$$行中的每一行都包含两个正整数,即相互连接的节点的标签。
以下$$M$$行中的第i行包含两个不同的正整数$$a_{i}$$和$$b_{i}$$,即第$$i$$个节点对中节点的标签。所有节点对都将相互不同。
### 输出格式:
必须输出一行,其中包含指向满足任务要求的树的边的不同方式的总数,模数为$$10^{9}+7$$。
### 得分:
在占总分$$20$$%的测试用例中,给定的树将是一个链。换句话说,对于所有$$i<N$$,节点$$i$$将与节点$$i+1$$的边相连。
在价值$$40$$%总分的额外测试用例中,它将保持$$N,M≤5·10^{3}$$.
### 输入样例1:
in
4 1
1 2
2 3
3 4
2 4
### 输出样例1:
out
4
### 输入样例2:
in
7 2
1 2
1 3
4 2
2 5
6 5
5 7
1 7
2 6
### 输出样例2:
out
8
### 输入样例3:
in
4 3
1 2
1 3
1 4
2 3
2 4
3 4
### 输出样例3:
out
0
答案:若无答案欢迎评论
我们需要引导树的每条边,这样对于每个给定的节点对$$(a_{i},b_{i})$$,都有一条从ai到bi或从bi到ai的路径。有多少种不同的方法可以实现这一点?
因为解可能很大,所以它需要对$$10^{9}+7$$取模。
### 输入格式:
第一行输入包含正整数$$N$$和$$M(1≤N、M≤3·10_{5})$$,分别表示树中的节点数和给定节点对数。
以下$$N-1$$行中的每一行都包含两个正整数,即相互连接的节点的标签。
以下$$M$$行中的第i行包含两个不同的正整数$$a_{i}$$和$$b_{i}$$,即第$$i$$个节点对中节点的标签。所有节点对都将相互不同。
### 输出格式:
必须输出一行,其中包含指向满足任务要求的树的边的不同方式的总数,模数为$$10^{9}+7$$。
### 得分:
在占总分$$20$$%的测试用例中,给定的树将是一个链。换句话说,对于所有$$i<N$$,节点$$i$$将与节点$$i+1$$的边相连。
在价值$$40$$%总分的额外测试用例中,它将保持$$N,M≤5·10^{3}$$.
### 输入样例1:
in
4 1
1 2
2 3
3 4
2 4
### 输出样例1:
out
4
### 输入样例2:
in
7 2
1 2
1 3
4 2
2 5
6 5
5 7
1 7
2 6
### 输出样例2:
out
8
### 输入样例3:
in
4 3
1 2
1 3
1 4
2 3
2 4
3 4
### 输出样例3:
out
0
答案:若无答案欢迎评论