#P15696. [2026作业]静默换座

    ID: 14908 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 8 上传者: 标签>算法基础构造图论树论树的重心CF2400

[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 <= 100000
  • 2 <= n <= 2000
  • 1 <= 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