QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 512 MB Total points: 100

#857. Социальное дистанцирование

Statistics

О студентах можно сказать две вещи: они ненавидят делать больше работы, чем необходимо, и любят держаться на расстоянии от других. Первое, вероятно, является причиной того, что факультет имеет форму дерева (строительство коридора между двумя косвенно связанными комнатами было бы пустой тратой времени); второе — причина, по которой они процветают во время продолжающейся пандемии. Теперь социальное дистанцирование — это не роскошь, а норма!

Однако здания в форме дерева и дистанцирование от других не совсем сочетаются. В настоящее время в некоторых комнатах находятся $k$ студентов, и из-за политики дистанцирования в каждой комнате находится не более одного студента. Более того, никакие два студента не находятся в комнатах, соединенных коридором.

Скоро начинается соревнование ICPC, и студенты спешат занять места за компьютерами, разбросанными по факультету. Есть $k$ компьютеров — столько же, сколько студентов, — расположенных в некоторых комнатах; кроме того, чтобы сделать дистанцирование возможным, никакие два компьютера не расположены в одной комнате, и никакие две соединенные коридором комнаты не имеют компьютера. Студенты могут распределиться по компьютерам произвольно, но они должны постоянно соблюдать социальную дистанцию, поэтому доставить их туда, где они должны быть, может быть непросто, если вообще возможно.

Вы — безжалостный организатор ICPC и создатель самого сложного набора задач. Наблюдая за тем, как студенты в панике бегают вокруг, вы осознаете ужасную правду: если студенты не доберутся до своих комнат вовремя, они не смогут принять участие в соревновании, и вся тяжелая работа по подготовке нерешаемых задач пойдет насмарку! Вы, конечно, не можете этого допустить.

Зная текущие позиции студентов и позиции компьютеров, разработайте последовательность операций, которая переместит каждого студента в комнату с компьютером. Каждая такая операция должна перемещать студента в соседнюю комнату; после каждой операции никакие два студента не должны находиться в одной комнате или в двух соседних комнатах. Оставшееся до начала соревнования время позволяет вам выполнить не более $4n^2$ перемещений, где $n$ — количество комнат. Вполне возможно, что ваша задача невыполнима, но есть только один способ узнать это...

Входные данные

Первая строка входных данных содержит количество тестовых случаев $z$ ($1 \le z \le 100\,000$). Далее следуют описания тестовых случаев.

Первая строка каждого тестового случая содержит единственное целое число $n$ ($2 \le n \le 2\,000$) — количество комнат на факультете.

Следующие $n - 1$ строк содержат по два целых числа $u_i, v_i$ ($1 \le u_i \neq v_i \le n$) — две комнаты, соединенные коридором. Гарантируется, что описанные коридоры образуют дерево (связный граф без циклов).

Следующая строка содержит единственное целое число $k$ ($1 \le k < n$) — количество студентов (и компьютеров).

Следующая строка содержит целые числа $s_1, \dots, s_k$ ($1 \le s_1 < s_2 < \dots < s_k \le n$) — начальные позиции студентов.

Следующая строка содержит целые числа $c_1, \dots, c_k$ в аналогичном формате, обозначающие комнаты с компьютерами.

Гарантируется, что есть хотя бы один студент, находящийся в комнате без компьютера.

Сумма $n^2$ по всем тестовым случаям не превышает $4 \cdot 10^7$.

Выходные данные

Для каждого тестового случая выведите «YES» (без кавычек), если возможно переместить студентов в комнаты с компьютерами, соблюдая социальную дистанцию, и «NO» в противном случае. В первом случае в следующих строках выведите любое допустимое решение.

Описание решения должно начинаться с единственного целого числа $m$ ($1 \le m \le 4n^2$), обозначающего количество перемещений. Затем должны следовать $m$ строк, каждая из которых описывает одно перемещение двумя целыми числами $a_i, b_i$ ($1 \le a_i \neq b_i \le n$), означающими, что студент, который в данный момент находится в комнате $a_i$, должен переместиться в комнату $b_i$, которая соединена с $a_i$ коридором.

Вам не нужно минимизировать длину решения.

Примеры

Пример 1

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

Пример 2

YES
4
1 3
4 2
2 5
3 1
NO

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#538Editorial Open集训队作业 解题报告 by 李秉霈Qingyu2026-01-02 21:54:26 Download
#184EditorialOpen题解jiangly2025-12-12 23:58:16View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.