专心OI - 找祖先
题目背景
Imakf 是一个小蒟蒻,他最近刚学了 LCA,他在手机 APPstore 里看到一个游戏也叫做 LCA 就下载了下来。
题目描述
这个游戏会给出你一棵树,这棵树有 N N N 个节点,根结点是 R R R ,系统会选中 M M M 个点 P 1 , P 2 . . . P M P_1,P_2...P_M P1,P2...PM ,要Imakf 回答有多少组点对 ( u i , v i ) (u_i,v_i) (ui,vi) 的最近公共祖先是 P i P_i Pi。Imakf 是个小蒟蒻,他就算学了 LCA 也做不出,于是只好求助您了。
Imakf 毕竟学过一点 OI,所以他要求您把答案模 ( 1 0 9 + 7 ) (10^9+7) (109+7)。
输入格式
第一行三个整数 N , R , M N , R , M N,R,M。
此后 N − 1 N-1 N−1 行,每行两个数 a , b a,b a,b,表示 a , b a,b a,b 之间有一条边。
此后 $1 $行,共 M M M 个数,表示 P i P_i Pi。
保证给出的边形成一棵树。
输出格式
输出共 M M M 行,每行一个数,第 i i i 行的数表示有多少组点对 ( u i , v i ) (u_i,v_i) (ui,vi) 的最近公共祖先是 P i P_i Pi
样例 #1
样例输入 #1
7 1 3
1 2
1 3
2 4
2 5
3 6
3 7
1 2 4
样例输出 #1
31
7
1
提示
样例 1 的树如下图所示:
对于询问 1 ( 1 , 1 ) ( 1 , 2 ) ( 1 , 3 ) ( 1 , 4 ) ( 1 , 5 ) ( 1 , 6 ) ( 1 , 7 ) ( 2 , 1 ) ( 2 , 3 ) ( 2 , 6 ) ( 2 , 7 ) ( 3 , 1 ) ( 3 , 2 ) ( 3 , 4 ) ( 3 , 5 ) ( 4 , 1 ) ( 4 , 3 ) ( 4 , 6 ) ( 4 , 7 ) ( 5 , 1 ) ( 5 , 3 ) ( 5 , 6 ) ( 5 , 7 ) ( 6 , 1 ) ( 6 , 2 ) ( 6 , 4 ) ( 6 , 5 ) ( 7 , 1 ) ( 7 , 2 ) ( 7 , 4 ) ( 7 , 5 ) ~(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (2,1) (2,3) (2,6) (2,7) (3,1) (3,2) (3,4) (3,5) (4,1) (4,3) (4,6) (4,7) (5,1) (5,3) (5,6) (5,7) (6,1) (6,2) (6,4) (6,5) (7,1) (7,2) (7,4) (7,5) (1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(2,1)(2,3)(2,