#43910. 祖先

    ID: 43910 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>深度优先搜索图的遍历普及T4/提高T1魔扣OJ

祖先

暂无测试数据。

DD 学习了关于树上公共祖先的知识。

LCA(Lowest Common Ancestors),即最近公共祖先,是这样一个问题:在有根树中,找出某两个结点 $u$ 和 $v$ 最近的公共祖先(或者说,离树根最远的公共祖先)。

现在给定一棵树,给定树根,萨摩耶不断给出询问 $a_i$ ,DD 需要回答出有多少点对 $(x,y)$(其中 $x,y$ 可以相等)的 LCA 是 $a_i$,答案对 $10^9+7$ 取模

输入格式

第一行三个整数,分别表示 $n,m,root$

接下来 $n-1$ 行每行两个整数,表示边连接着 $u_i,v_i$

接下来一行 $m$ 个整数,第 $i$ 个表示 $a_i$

输出格式

对于每次询问回答有多少个点对的 LCA 符合条件

数据范围

对于 $20\%$ 的数据,$1 \leq n,m \leq 500$

对于 $50\%$ 的数据,$1 \leq n,m \leq 10^4$

对于 $100\%$ 的数据,$1 \leq n,m \leq 10^6$

7 3 1
1 2
1 3
2 4 
2 5
3 6
3 7
1 2 4
31
7 
1