AT_joisc2022_a 刑務所 (Jail)
题目描述
在 JOI 王国,安保最严格的地方就是 IOI 监狱。IOI 监狱中有 $N$ 个房间,以 $1,\dots,N$ 编号。其中有 $N-1$ 条通道。第 $i$ $(1\le i\le N-1)$ 条通道双向地连接房间 $A_i$ 和 $B_i$。任意两个房间都可以相互到达。
IOI 监狱中有 $M$ 个囚犯,以 $1,\dots,M$ 编号。第 $j$ $(1\le j\le M)$ 个囚犯的卧室和工作室分别是房间 $S_j,T_j$。一个囚犯可能在另一个囚犯的卧室工作。然而,每个房间最多成为一个囚犯的卧室,一个囚犯的工作室。
一天早上,这 $M$ 个囚犯需要从他们的卧室移动到他们的工作室。典狱长 APIO 先生需要按如下方式指示囚犯移动:
**指令**:选择一个囚犯,然后命令他从当前所在的房间移动到一个与该房间有直接连边的房间。为了避免囚犯交流,不允许将囚犯移动到有其他囚犯在的房间。
为了尽早开始工作,APIO 先生想知道,是否存在一种给出任意条指令的方案使得每个囚犯以**最短路径**从卧室到达工作室。
请编写一个程序,在给定如上房间、通道和罪犯的所有信息后判断是否存在满足条件的方案。
输入格式
每个测试数据包含多组测试用例。
第一行一个整数 $Q$,表示这个测试数据包含 $Q$ 组测试用例。
对于每组测试用例:
第一行一个整数 $N$,表示房间个数。
接下来 $N-1$ 行每行两个整数 $A_i,B_i$ 表示通道连接房间的编号。
接下来一行一个整数 $M$ 表示囚犯个数。
接下来 $M$ 行,每行两个整数 $S_i,T_i$ 表示囚犯的卧室和工作室。
输出格式
输出 $Q$ 行,第 $i$ 行表示对于第 $i$ 组测试用例,如果存在一种满足题意的方案,输出 `Yes`,否则输出 `No`。