JOI 2022 - Jail
Xem PDFNhà tù IOI nổi tiếng là nhà tù được quản lý nghiêm ngặt nhất vương quốc JOI. Nhà tù có \(N\) phòng, được đánh số từ \(1\) đến \(N\), và \(N-1\) hành lang. Hành lang thứ \(i\) (\(1\le i\le N-1\)) nối hai chiều phòng \(A_i\) với phòng \(B_i\). Từ một phòng bất kỳ có thể đi đến mọi phòng khác qua các hành lang.
Có \(M\) tù nhân, được đánh số từ \(1\) đến \(M\). Tù nhân \(j\) (\(1\le j\le M\)) có phòng ngủ là \(S_j\) và phòng làm việc là \(T_j\). Phòng ngủ của một người có thể là phòng làm việc của người khác. Tuy nhiên, không có hai người chung phòng ngủ, cũng không có hai người chung phòng làm việc.
Một buổi sáng, tất cả tù nhân phải đi từ phòng ngủ đến phòng làm việc. Giám đốc APIO sẽ lặp lại mệnh lệnh sau:
- Chọn một tù nhân và chuyển người đó từ phòng hiện tại sang một phòng được nối trực tiếp bằng một hành lang. Để tránh các tù nhân nói chuyện với nhau, phòng đích không được có tù nhân khác.
Để công việc bắt đầu sớm, giám đốc muốn biết có thể đưa tất cả tù nhân đến phòng làm việc mà không ai đi qua cùng một phòng hai lần hay không. Nói cách khác, mỗi tù nhân phải đi theo đường đi ngắn nhất của mình.
Hãy viết chương trình xác định điều đó từ thông tin các phòng, hành lang và tù nhân.
Dữ liệu vào
Đọc từ đầu vào chuẩn. Mỗi bộ dữ liệu gồm \(Q\) tình huống, được đánh số từ \(1\) đến \(Q\):
Q
(Dữ liệu tình huống 1)
(Dữ liệu tình huống 2)
...
(Dữ liệu tình huống Q)
Mỗi tình huống có định dạng sau; tất cả giá trị đều là số nguyên:
N
A_1 B_1
A_2 B_2
...
A_{N-1} B_{N-1}
M
S_1 T_1
S_2 T_2
...
S_M T_M
Dữ liệu ra
In \(Q\) dòng ra đầu ra chuẩn. Dòng thứ \(k\) (\(1\le k\le Q\)) chứa Yes nếu có thể đưa tất cả tù nhân trong tình huống \(k\) đến phòng làm việc theo các đường đi ngắn nhất, hoặc No nếu không thể.
Ràng buộc
- \(1\le Q\le 1\,000\).
- \(2\le N\le 120\,000\).
- \(1\le A_i<B_i\le N\) (\(1\le i\le N-1\)).
- \(2\le M\le N\).
- \(1\le S_j,T_j\le N\) và \(S_j\ne T_j\) (\(1\le j\le M\)).
- Các giá trị \(S_1,S_2,\ldots,S_M\) đôi một khác nhau.
- Các giá trị \(T_1,T_2,\ldots,T_M\) đôi một khác nhau.
- Từ bất kỳ phòng nào đều đi được đến mọi phòng khác qua các hành lang.
- Tổng \(N\) của cả \(Q\) tình huống không vượt quá \(120\,000\).
Phân nhóm
Các ràng buộc về một tình huống dưới đây phải đúng với mọi tình huống trong bộ dữ liệu.
- Nhóm 1 (5 điểm): \(A_i=i\), \(B_i=i+1\) với mọi \(1\le i\le N-1\).
- Nhóm 2 (5 điểm): \(Q\le 20\), \(N\le 250\), \(M=2\).
- Nhóm 3 (16 điểm): \(Q\le 20\), \(N\le 250\), \(M\le 6\).
- Nhóm 4 (28 điểm): \(Q\le 20\), \(N\le 250\), \(M\le 100\).
- Nhóm 5 (12 điểm): \(Q\le 20\), \(M\le 500\).
- Nhóm 6 (11 điểm): Từ bất kỳ phòng nào đều có thể đến mọi phòng khác qua không quá \(20\) hành lang.
- Nhóm 7 (23 điểm): Không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
1
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
2
3 4
4 8
Output
Yes
Giải thích
Có thể thực hiện các mệnh lệnh sau:
- Chuyển tù nhân 2 từ phòng 4 sang phòng 5.
- Chuyển tù nhân 1 từ phòng 3 sang phòng 4.
- Chuyển tù nhân 2 từ phòng 5 sang phòng 6.
- Chuyển tù nhân 2 từ phòng 6 sang phòng 7.
- Chuyển tù nhân 2 từ phòng 7 sang phòng 8.
Mọi tù nhân đều đi theo đường đi ngắn nhất, nên in Yes. Cấu trúc nhà tù được minh họa bên dưới.
Ví dụ này thỏa mãn ràng buộc của tất cả các nhóm.
Ví dụ 2
Input
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
Output
Yes
No
Giải thích
Có \(Q=2\) tình huống. Trong tình huống 1, có thể thực hiện:
- Chuyển tù nhân 1 từ phòng 4 sang phòng 3.
- Chuyển tù nhân 1 từ phòng 3 sang phòng 2.
- Chuyển tù nhân 2 từ phòng 5 sang phòng 4.
- Chuyển tù nhân 2 từ phòng 4 sang phòng 3.
- Chuyển tù nhân 2 từ phòng 3 sang phòng 6.
- Chuyển tù nhân 1 từ phòng 2 sang phòng 1.
- Chuyển tù nhân 2 từ phòng 6 sang phòng 7.
Ngược lại, trong tình huống 2 không thể đưa mọi tù nhân đến đích theo đường đi ngắn nhất. Vì vậy, dòng đầu in Yes, dòng thứ hai in No.
Ví dụ này thỏa mãn ràng buộc của các nhóm 3, 4, 5, 6, 7.
Ví dụ 3
Input
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
Output
Yes
No
Yes
Giải thích
Ví dụ này thỏa mãn ràng buộc của các nhóm 1, 3, 4, 5, 6, 7.
Nguồn
Bài toán thuộc JOI 2021/2022, trại huấn luyện mùa xuân, ngày thi 1 (20/03/2022). Bản gốc do JCIOI phát hành theo giấy phép CC BY-SA 4.0. Bản tiếng Việt là bản dịch từ đề chính thức.
Kỳ thi:
- JOI 2022 - Tuyển chọn mùa xuân - Ngày 1 (20 Tháng ba, 2022)

Bình luận