5193 - 提高:DFS序和欧拉序:树上跑步
小 A 每天会在某一个以 1 为根、N 个结点的有根树上跑步,初始时,每个结点都有一个障碍物,每个障碍物会按照深度优先的顺序周期性地在以初始点为根的子树中移动,每个单位时间只会移动一条边。
小 A 初始在 x 点,他要沿着最短路径跑到根结点,且每个单位时间只会移动一条边。在这个过程中,如果小 A 在一个结点遇到了障碍物,他需要消耗 点能量清除它,被清除的障碍物不会再出现。
请你求出小 A 需要消耗多少能量才能到终点。
n ≤ 5 ∗ 1 0 ^5
输入
第一行一个数字t,表示有t组数据 对于每组数据,第一行一个整数n,表示树有n个节点,接下来n-1行,每行有2个,表示结点之间的连接,左边是父亲,右边是儿子
最后一行一个整数,表示小A的出发点 障碍物的移动时周期性的,列入,初始在2号点的障碍物的路线为:2—>4->2->5->2->4->2->5... “有序”指的:比如1号点的儿子先输入的2再输入的3,那么1号点巡逻时就要先巡逻2再巡逻3
输出
输出t行,每行一个整数表示答案
样例
输入
1 6 1 2 1 3 2 4 2 5 3 6 6
输出
1
提示
样例1解释 为了方便,我们把初始在i号点的障碍物称为障碍物i。 障碍物1的一个巡逻内周期路线为:1->2->4-2->5->2->1->3->6->3->1.
障碍物2的一个周期内巡逻路线为:2->4->2->5->2
障碍物3的一个周期内的训练路线为:3->6->3
障碍物4,5,6一直不动 小A的路线为6->3->1 小A初始在6号点,需要清除障碍物6,第一时刻他在3号点,虽然他和障碍物3对穿过去,但是由于没有在点上相遇,所以不算相遇,第二时刻他在1号点,但是1号点没有障碍物。
数据范围 20%数据,n<=100; 40%数据,n<=200 对于10%的数据,树高<=5 对于10%的数据,树是一条链 对于100%数据,1<=T<=10,1<=N<=500000