QOJ.ac

QOJ

Límite de tiempo: 10 s Límite de memoria: 512 MB Puntuación total: 100

#857. Giãn cách xã hội

Estadísticas

Có hai điều cần nói về sinh viên: họ ghét phải làm việc nhiều hơn mức cần thiết và thích giữ khoảng cách với người khác. Điều thứ nhất có lẽ là lý do tại sao khoa được thiết kế theo cấu trúc cây (xây dựng hành lang giữa hai phòng không kết nối trực tiếp sẽ là lãng phí thời gian); điều thứ hai là lý do tại sao họ phát triển mạnh trong đại dịch đang diễn ra. Giờ đây, giãn cách xã hội không còn là một sự xa xỉ - đó là tiêu chuẩn!

Tuy nhiên, các tòa nhà có cấu trúc cây và việc giữ khoảng cách với người khác không thực sự đi đôi với nhau. Hiện tại có $k$ sinh viên ở một số phòng, và do chính sách giãn cách, mỗi phòng có tối đa một sinh viên. Hơn nữa, không có hai sinh viên nào ở trong các phòng được kết nối trực tiếp bằng hành lang.

Cuộc thi ICPC sắp bắt đầu, và các sinh viên đổ xô đi chiếm chỗ tại các máy tính nằm rải rác khắp khoa. Có $k$ máy tính – bằng số lượng sinh viên – nằm trong một số phòng; hơn nữa, để việc giãn cách là khả thi, không có hai máy tính nào nằm trong cùng một phòng và không có hai phòng được kết nối trực tiếp nào cùng có máy tính. Các sinh viên có thể tự phân bổ đến các máy tính một cách tùy ý, nhưng họ phải duy trì giãn cách xã hội mọi lúc – vì vậy việc đưa họ đến nơi họ cần đến có thể rất khó khăn, nếu không muốn nói là không thể.

Bạn là một nhà tổ chức ICPC tàn nhẫn và là người tạo ra bộ đề thi "sát thủ" cuối cùng. Khi nhìn các sinh viên chạy xung quanh một cách điên cuồng, bạn nhận ra một sự thật kinh hoàng: nếu các sinh viên không đến kịp phòng của họ, họ sẽ không thể tham gia cuộc thi, và do đó tất cả công sức chuẩn bị các bài toán không thể giải được sẽ trở nên vô ích! Chắc chắn bạn không thể để điều này xảy ra.

Với vị trí hiện tại của sinh viên và vị trí của các máy tính, hãy thiết kế một chuỗi các thao tác di chuyển mọi sinh viên đến một phòng có máy tính. Mỗi thao tác như vậy phải di chuyển một sinh viên đến một phòng kề; sau mỗi thao tác, không được có hai sinh viên nào ở cùng một phòng hoặc ở hai phòng kề nhau. Thời gian còn lại trước khi cuộc thi bắt đầu cho phép bạn thực hiện tối đa $4n^2$ bước di chuyển, trong đó $n$ là số lượng phòng. Có thể nhiệm vụ của bạn là bất khả thi, nhưng chỉ có một cách để biết điều đó...

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào chứa số lượng bộ kiểm thử $z$ ($1 \le z \le 100\,000$). Các mô tả của các bộ kiểm thử sẽ theo sau.

Dòng đầu tiên của một bộ kiểm thử chứa một số nguyên duy nhất $n$ ($2 \le n \le 2\,000$) – số lượng phòng tại khoa.

$n - 1$ dòng tiếp theo chứa hai số nguyên $u_i, v_i$ ($1 \le u_i \neq v_i \le n$) – hai phòng được kết nối bởi một hành lang. Đảm bảo rằng các hành lang được mô tả tạo thành một cây (một đồ thị liên thông không có chu trình).

Dòng tiếp theo chứa một số nguyên duy nhất $k$ ($1 \le k < n$) – số lượng sinh viên (và máy tính).

Dòng tiếp theo chứa các số nguyên $s_1, \dots, s_k$ ($1 \le s_1 < s_2 < \dots < s_k \le n$) – vị trí ban đầu của các sinh viên.

Dòng tiếp theo chứa các số nguyên $c_1, \dots, c_k$ theo định dạng tương tự, biểu thị các phòng có máy tính.

Đảm bảo rằng có ít nhất một sinh viên nằm trong một phòng không có máy tính.

Tổng của $n^2$ trên tất cả các bộ kiểm thử không vượt quá $4 \cdot 10^7$.

Dữ liệu ra

Đối với mỗi bộ kiểm thử, hãy in ra “YES” (không có dấu ngoặc kép) nếu có thể di chuyển sinh viên đến các phòng có máy tính trong khi vẫn duy trì giãn cách xã hội, và “NO” nếu ngược lại. Trong trường hợp có thể, các dòng tiếp theo hãy in ra bất kỳ lời giải hợp lệ nào.

Mô tả lời giải nên bắt đầu bằng một số nguyên duy nhất $m$ ($1 \le m \le 4 \cdot n^2$) biểu thị số lượng bước di chuyển. Sau đó, $m$ dòng sẽ theo sau, mỗi dòng mô tả một bước di chuyển với hai số nguyên $a_i, b_i$ ($1 \le a_i \neq b_i \le n$), với ý nghĩa rằng một sinh viên hiện đang ở phòng $a_i$ nên di chuyển đến phòng $b_i$, nơi được kết nối với $a_i$ bởi một hành lang.

Bạn không cần phải tối thiểu hóa độ dài lời giải.

Ví dụ

Input 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

Output 1

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.