loj#P3685. 「JOISC 2022 Day1」监狱

「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
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
2
3 4
4 8
Yes
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
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

数据范围与提示

对于所有数据,满足:

  • 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

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

子任务编号 附加限制 分值
11 Ai=i,Bi=i+1 (i[1,N1])A_i=i,B_i=i+1~(i\in[1,N-1]) 55
22 Q20,N250,M=2Q\leq 20, N\leq 250, M=2
33 Q20,N250,M6Q\leq 20, N\leq 250, M\leq 6 1616
44 Q20,N250,M100Q\leq 20, N\leq 250, M\leq 100 2828
55 Q20,M500Q\leq 20, M\leq 500 1212
66 任意两个房间之间都可以通过不超过 2020 条道路到达。 1111
77 无附加限制 2323