| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2022 - Jail | 100 (p) | 4.0s | 1G |
| 2 | JOI 2022 - Sightseeing in Kyoto | 100 (p) | 2.0s | 1G |
| 3 | JOI 2022 - Misspelling | 100 (p) | 3.5s | 1G |
Nhà 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:
Để 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.
Đọ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
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ể.
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.
Ví dụ 1
1
8
1 2
2 3
3 4
4 5
5 6
6 7
7 8
2
3 4
4 8
Yes
Có thể thực hiện các mệnh lệnh sau:
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
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
Yes
No
Có \(Q=2\) tình huống. Trong tình huống 1, có thể thực hiện:
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
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
Yes
No
Yes
Ví dụ này thỏa mãn ràng buộc của các nhóm 1, 3, 4, 5, 6, 7.
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.
Kyoto là một địa điểm du lịch nổi tiếng thế giới, cũng nổi tiếng với mạng đường phố dạng ô bàn cờ. Bạn đang tham quan thành phố và muốn đi bộ đến một danh lam thắng cảnh nhanh nhất có thể. Bài toán xét mô hình đơn giản sau.
Thành phố có \(H\) con đường chạy theo hướng đông-tây và \(W\) con đường chạy theo hướng nam-bắc, chia thành phố thành lưới \((H-1)\times(W-1)\) ô vuông. Giao điểm của đường thứ \(i\) tính từ phía bắc (\(1\le i\le H\)) và đường thứ \(j\) tính từ phía tây (\(1\le j\le W\)) được ký hiệu là \((i,j)\).
Độ rộng, vật liệu và mức độ đông đúc của các đường khác nhau, nên tốc độ đi bộ trên chúng có thể khác nhau:
Để không làm ảnh hưởng cảnh quan đẹp của Kyoto, bạn không được đi ra ngoài các con đường.
Bạn đang ở giao điểm \((1,1)\) và muốn đến \((H,W)\). Vì đi xa sẽ mệt, bạn không muốn đi vòng: bạn không bao giờ đi về phía bắc hoặc phía tây. Với điều kiện này, hãy tính thời gian ít nhất để đến đích.
Đọc từ đầu vào chuẩn theo định dạng sau. Tất cả giá trị đều là số nguyên.
H W
A_1 A_2 ... A_H
B_1 B_2 ... B_W
In một dòng chứa thời gian ít nhất, tính bằng giây, để đi bộ từ \((1,1)\) đến \((H,W)\) mà không đi vòng.
Ví dụ 1
2 2
1 3
2 5
5
Có hai đường đi từ \((1,1)\) đến \((2,2)\) mà không đi vòng:
Thời gian ít nhất là \(5\) giây, nên in 5. Hai đường đi được minh họa dưới đây. Số ghi cạnh mỗi đường là thời gian đi một đơn vị độ dài trên đường đó.
Ví dụ này thỏa mãn ràng buộc của tất cả các nhóm.
Ví dụ 2
5 5
7 1 5 2 8
7 2 4 1 6
20
Ví dụ 3
4 6
454863204 543362989 866044086 813602010
71574269 17945210 688720933 392135202 38174709 168241720
2737473954
Ví dụ này thỏa mãn ràng buộc của các nhóm 1, 3.
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.
Chủ tịch K từng có một xâu \(S\) độ dài \(N\) gồm các chữ cái tiếng Anh viết thường, nhưng ông đã quên mất xâu đó. Ông có một cuốn từ điển ghi nhiều kiểu lỗi chính tả và từng tra cứu các lỗi chính tả của \(S\). Vì vậy, ông còn nhớ thông tin sau:
Ở đây, \(T_{A_j}\le T_{B_j}\) nghĩa là hai xâu bằng nhau, hoặc \(T_{A_j}\) nhỏ hơn \(T_{B_j}\) theo thứ tự từ điển (thứ tự bảng chữ cái).
Cho những thông tin mà chủ tịch K nhớ, hãy tính số xâu \(S\) không mâu thuẫn với chúng, lấy phần dư khi chia cho \(1\,000\,000\,007\).
Đọc từ đầu vào chuẩn theo định dạng sau. Tất cả giá trị đều là số nguyên.
N M
A_1 B_1
A_2 B_2
...
A_M B_M
In một dòng chứa số xâu \(S\) không mâu thuẫn với thông tin đã cho, lấy phần dư khi chia cho \(1\,000\,000\,007\).
Ví dụ 1
3 2
1 3
3 2
5876
Ví dụ, với \(S=\) bab, ta có \(T_1=\) ab, \(T_2=\) bb, \(T_3=\) ba. Hai quan hệ \(T_1\le T_3\) và \(T_3\le T_2\) đều đúng, nên xâu này không mâu thuẫn với thông tin đã cho. Tổng cộng có \(5\,876\) xâu phù hợp, nên in 5876.
Ngược lại, với \(S=\) aab, ta có \(T_1=\) ab, \(T_2=\) ab, \(T_3=\) aa. Quan hệ \(T_1\le T_3\) không đúng, nên xâu này mâu thuẫn với thông tin đã cho.
Ví dụ này thỏa mãn ràng buộc của tất cả các nhóm.
Ví dụ 2
5 6
1 2
1 5
2 4
5 4
5 3
4 3
656981
Ví dụ này thỏa mãn ràng buộc của các nhóm 1, 2, 4, 5.
Ví dụ 3
10 9
3 6
4 6
6 7
7 9
10 8
9 8
8 5
5 2
5 1
206289833
Có \(824\,206\,295\,601\) xâu phù hợp. Phần dư của số này khi chia cho \(1\,000\,000\,007\) là \(206\,289\,833\), nên in 206289833.
Ví dụ này thỏa mãn ràng buộc của các nhóm 1, 2, 4, 5.
Ví dụ 4
7 6
1 3
3 4
4 6
6 5
5 7
7 2
7125651
Ví dụ này thỏa mãn ràng buộc của tất cả các nhóm.
Ví dụ 5
5 4
2 4
4 3
3 5
5 1
61451
Ví dụ này thỏa mãn ràng buộc của tất cả các nhóm.
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.