#L3685. 「JOISC 2022 Day1」监狱

    ID: 3158 传统题 4000ms 1024MiB 尝试: 9 已通过: 1 难度: 9 上传者: 标签>树结构最近公共祖先树上倍增DFS序列树链剖分图结构图的遍历其他构造思维难度省选/NOI-

「JOISC 2022 Day1」监狱

题目描述

题目译自 JOISC 2022 Day1 T1「刑務所 / Jail」。其中题目描述以外的部分由 hehezhou 友情提供。

在 JOI 王国,安保最严格的地方就是 IOI 监狱。IOI 监狱中有 NN 个房间,以 1,,N1,\dots,N 编号。其中有 N1N-1 条通道。第 ii (1iN1)(1\le i\le N-1) 条通道双向地连接房间 AiA_iBiB_i。任意两个房间都可以相互到达。

IOI 监狱中有 MM 个囚犯,以 1,,M1,\dots,M 编号。第 jj (1jM)(1\le j\le M) 个囚犯的卧室和工作室分别是房间 Sj,TjS_j,T_j。一个囚犯可能在另一个囚犯的卧室工作。然而,每个房间最多成为一个囚犯的卧室,一个囚犯的工作室。

一天早上,这 MM 个囚犯需要从他们的卧室移动到他们的工作室。典狱长 APIO 先生需要按如下方式指示囚犯移动: 指令:选择一个囚犯,然后命令他从当前所在的房间移动到一个与该房间有直接连边的房间。为了避免囚犯交流,不允许将囚犯移动到有其他囚犯在的房间。

为了尽早开始工作,APIO 先生想知道,是否存在一种给出任意条指令的方案使得每个囚犯以最短路径从卧室到达工作室。

请编写一个程序,在给定如上房间、通道和罪犯的所有信息后判断是否存在满足条件的方案。


输入格式

每个测试数据包含多组测试用例。

第一行一个整数 QQ,表示这个测试数据包含 QQ 组测试用例。

对于每组测试用例:

  • 第一行一个整数 NN,表示房间个数。
  • 接下来 N1N-1 行每行两个整数 Ai,BiA_i,B_i 表示通道连接房间的编号。
  • 接下来一行一个整数 MM 表示囚犯个数。
  • 接下来 MM 行,每行两个整数 Si,TiS_i,T_i 表示囚犯的卧室和工作室。

输出格式

输出 QQ 行,第 ii 行表示对于第 ii 组测试用例,如果存在一种满足题意的方案,输出 Yes,否则输出 No


样例 1

输入

1
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
2
3 4
4 8

输出

Yes

可以通过发送如下指令完成任务:

  • 让囚犯 2244 号房间移动到 55 号房间。
  • 让囚犯 1133 号房间移动到 44 号房间。
  • 让囚犯 2255 号房间移动到 66 号房间。
  • 让囚犯 2266 号房间移动到 77 号房间。
  • 让囚犯 2277 号房间移动到 88 号房间。

这组样例满足所有子任务的限制。


样例 2

输入

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

输出

Yes
No

对于第一组测试用例,可以通过如下指令完成任务:

  • 让囚犯 1144 号房间移动到 33 号房间。
  • 让囚犯 1133 号房间移动到 22 号房间。
  • 让囚犯 2255 号房间移动到 44 号房间。
  • 让囚犯 2244 号房间移动到 33 号房间。
  • 让囚犯 2233 号房间移动到 66 号房间。
  • 让囚犯 1122 号房间移动到 11 号房间。
  • 让囚犯 2266 号房间移动到 77 号房间。

对于第二组测试用例,不存在一组指令能完成任务。

这组样例满足子任务 3,4,5,6,73,4,5,6,7 的限制。


样例 3

输入

3
3
1 2
2 3
2
2 1
3 2
7
1 2
2 3
3 4
4 5
5 6
6 7
3
1 3
4 2
2 5
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
4
1 5
2 6
3 7
4 8

输出

Yes
No
Yes

这组样例满足子任务 1,3,4,5,6,71,3,4,5,6,7 的限制。


数据范围与提示

对于所有数据,满足:

  • 1Q10001\leq Q\leq 1000
  • 1N1200001\leq N\leq 120000
  • 1Ai<BiN1\leq A_i\lt B_i\leq N (i[1,N1])(i\in [1,N-1])
  • 2MN2\leq M\leq N
  • 1Si,TiN1\leq S_i,T_i\leq N (i[1,M])(i\in [1,M])
  • SiS_i (i[1,M])(i\in[1,M]) 互不相同。
  • TiT_i (i[1,M])(i\in[1,M]) 互不相同。
  • SjTjS_j \ne T_j (j[1,M])(j\in [1, M])
  • 任意两个房间之间可以通过给定道路互相到达。
  • 对于所有测试用例,NN 的总和不超过 120000120000

详细子任务附加限制及分值如下表所示:

子任务编号 附加限制 分值
1 Ai=i,Bi=i+1A_i=i,B_i=i+1 (i[1,N1])(i\in[1,N-1]) 5
2 Q20Q\leq 20, N250N\leq 250, M=2M=2
3 Q20Q\leq 20, N250N\leq 250, M6M\leq 6 16
4 Q20Q\leq 20, N250N\leq 250, M100M\leq 100 28
5 Q20Q\leq 20, M500M\leq 500 12
6 任意两个房间之间都可以通过不超过 2020 条道路到达。 11
7 无附加限制 23