#P15696. [2026作业]静默换座
[2026作业]静默换座
题目描述
一栋研究所大楼有 n 个房间,房间之间由 n - 1 条走廊连接,整体结构是一棵树。
现在有 k 名研究员分别站在一些房间中,每个房间至多一人,并且任意两个相邻房间不会同时有人。另有 k 台终端分布在一些房间中,终端所在房间同样两两不相邻。
你可以反复执行一次移动:选择一名研究员,将他移动到一个相邻房间。每次移动后,仍必须满足任意两个研究员不在同一房间,也不在相邻房间。
请判断是否可以经过不超过 4n^2 次移动,使得所有研究员最终恰好占据所有有终端的房间。如果可以,输出任意一种合法移动方案。
输入格式
第一行包含一个整数 z,表示测试用例数量。
每个测试用例的第一行包含一个整数 n,表示房间数量。
接下来 n - 1 行,每行包含两个整数 u_i, v_i,表示一条走廊。保证这些走廊构成一棵树。
接下来一行包含整数 k。
下一行包含 k 个严格递增的整数 s_1, ..., s_k,表示研究员初始所在房间。
再下一行包含 k 个严格递增的整数 c_1, ..., c_k,表示终端所在房间。
保证至少有一名研究员初始不在终端房间。
输出格式
对每个测试用例,如果无法完成目标,输出一行 NO。
否则输出一行 YES,然后输出一行整数 m,表示移动次数,要求 1 <= m <= 4n^2。接下来 m 行,每行输出两个整数 a_i, b_i,表示当前在房间 a_i 的某名研究员沿走廊移动到房间 b_i。
不要求最小化移动次数。
数据范围
1 <= z <= 1000002 <= n <= 20001 <= k < n- 所有测试用例的
n^2之和不超过4 * 10^7
样例
2
5
1 2
1 3
2 4
2 5
2
1 4
1 5
7
1 2
2 3
2 4
4 6
6 5
6 7
3
1 4 5
3 4 7
YES
4
1 3
4 2
2 5
3 1
NO