| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | KOI 2026 - Dice Tower Stacking | 100 (p) | 2.0s | 1G |
| 2 | KOI 2026 - Snack Distribution | 100 (p) | 3.0s | 1G |
| 3 | KOI 2026 - Game | 100 (p) | 5.0s | 1G |
| 4 | KOI 2026 - Sequence Operations | 100 (p) | 5.0s | 1G |
Có \(N\) viên xúc xắc lập phương. Mỗi mặt mang một số từ \(1\) đến \(6\), các mặt khác nhau mang các số khác nhau, và tổng số trên hai mặt đối diện luôn bằng \(7\).
Sau khi gieo các xúc xắc, số ở mặt trên của viên \(i\) là \(A_i\). Chọn một hoặc nhiều viên còn trên bàn để tạo một tháp; có thể thay đổi thứ tự các viên nhưng không được xoay chúng. Hai mặt tiếp xúc trong tháp phải mang cùng một số. Lặp lại cho đến khi dùng hết các viên xúc xắc.
Hãy tìm số tháp ít nhất có thể tạo được.
In ra số tháp nhỏ nhất.
Ví dụ 1
4
3 3 5 4
2
Ví dụ 2
2
3 4
1
Ví dụ 3
5
1 1 6 1 1
3
KOI 2026 Round 2, problem Dice Tower Stacking. Tài liệu, dữ liệu chấm và mã nguồn mẫu từ Korean Olympiad in Informatics, phát hành theo CC BY-NC-SA 4.0.
Có \(N\) học sinh và \(N\) loại đồ ăn nhẹ, đều được đánh số từ \(1\) đến \(N\). Học sinh \(i\) thích \(C_i\) loại có chỉ số \(A_{i,1},\ldots,A_{i,C_i}\). Ban đầu mỗi loại đồ ăn có đúng một chiếc.
Đưa các học sinh vào phòng theo một thứ tự. Khi vào, một học sinh lấy tất cả đồ ăn mà mình thích và còn lại trong phòng. Hãy quyết định liệu có thể chọn thứ tự sao cho mọi học sinh lấy đúng một đồ ăn hay không. Nếu có, hãy in một thứ tự như vậy.
In -1 nếu không thể. Ngược lại in một hoán vị \(P_1,\ldots,P_N\) sao cho khi học sinh vào theo thứ tự đó, mỗi người lấy đúng một đồ ăn.
Ví dụ 1
3
2 1 2
2 2 3
1 2
3 1 2
Theo thứ tự này, học sinh \(3\) lấy đồ ăn \(2\), học sinh \(1\) lấy đồ ăn \(1\), rồi học sinh \(2\) lấy đồ ăn \(3\); vì vậy mỗi người lấy đúng một món.
Ví dụ 2
2
2 1 2
2 1 2
-1
Ví dụ 3
4
1 3
1 2
3 4 2 3
2 1 2
1 2 3 4
KOI 2026 Round 2, problem Snack Distribution. Tài liệu, dữ liệu chấm và mã nguồn mẫu từ Korean Olympiad in Informatics, phát hành theo CC BY-NC-SA 4.0.
Alice và Bob chơi trong một mê cung gồm \(N\) phòng đánh số từ \(1\) đến \(N\). Phòng \(i\) có lối ra khi \(A_i=1\) và không có lối ra khi \(A_i=0\).
Mê cung có đúng \(M\) cặp phòng được nối. Với mỗi \(i\), có \(c_i\) hành lang khác nhau cùng nối hai phòng \(a_i\) và \(b_i\); vì vậy giữa cùng một cặp phòng có thể có nhiều hành lang song song. Mê cung không nhất thiết liên thông.
Họ chơi \(Q\) ván độc lập. Trong ván \(j\), Alice đi vào phòng \(s_j\) và có thể lặp lại thao tác sau:
Alice thắng ngay khi đến một phòng có lối ra, kể cả khi phòng xuất phát \(s_j\) đã có lối ra; cô được phép thực hiện \(0\) lần di chuyển. Alice cố gắng bảo đảm chiến thắng còn Bob cố ngăn cô thắng. Nói cách khác, Alice thắng nếu có một chiến lược thích nghi với các lựa chọn trước đó để cuối cùng luôn đến được một phòng có lối ra, bất kể Bob chọn thế nào.
Với mỗi ván, hãy xác định Alice có thể bảo đảm chiến thắng hay không.
In \(Q\) dòng. Dòng \(j\) là YES nếu Alice có thể bảo đảm thắng ván \(j\), ngược lại là NO.
Ví dụ 1
5 5 5
0 0 1 0 0
1 2 1
1 3 1
1 4 2
2 3 2
3 4 1
2 1
1 2
3 3
4 4
5 1
YES
YES
YES
NO
NO
Ví dụ 2
4 3 4
1 0 0 0
1 2 2
2 3 3
3 4 1
1 3
2 2
3 3
4 1
YES
YES
NO
YES
Ví dụ 3
4 3 3
0 1 1 0
1 2 1
1 3 3
1 4 2
4 2
1 3
4 3
YES
YES
NO
Ví dụ 4
2 0 2
1 0
1 1
2 1
YES
NO
KOI 2026 Round 2, bài Game. Tài liệu, dữ liệu chấm và mã nguồn mẫu của Korean Olympiad in Informatics, phát hành theo giấy phép CC BY-NC-SA 4.0.
Cho hoán vị \(A=[A_1,\ldots,A_N]\) và dãy \(B=[B_1,\ldots,B_M]\) có các phần tử khác nhau. Ban đầu \(X=A\). Có thể lặp lại hai thao tác: đổi chỗ hai phần tử kề nhau \(X_i<X_{i+1}\), hoặc gộp hai phần tử kề nhau thành \(\min(X_i,X_{i+1})\).
Hãy quyết định có thể biến \(X\) thành \(B\) không. Nếu có, in bất kỳ dãy thao tác hợp lệ nào; không cần tối thiểu số thao tác.
In NO nếu không thể. Nếu có thể, in YES, số thao tác \(Q\) (\(0\le Q\le N^2\)), rồi \(Q\) dòng thao tác theo thứ tự thực hiện: 1 i để đổi chỗ hoặc 2 i để gộp vị trí \(i\) và \(i+1\). Mỗi chỉ số phải hợp lệ đối với độ dài hiện tại của \(X\); thao tác loại 1 còn đòi hỏi \(X_i<X_{i+1}\). Sau mọi thao tác, \(X\) phải bằng đúng \(B\).
Ví dụ 1
4 2
1 4 2 3
3 1
YES
6
1 1
1 2
1 3
2 1
1 1
2 2
Sáu thao tác trên lần lượt biến đổi
nên kết quả đúng bằng \(B\).
Ví dụ 2
2 1
1 2
2
NO
Ví dụ 3
4 4
3 2 1 4
3 1 2 4
NO
Ví dụ 4
4 2
1 3 2 4
1 3
NO
KOI 2026 Round 2, problem Sequence Operations. Tài liệu, dữ liệu chấm và mã nguồn mẫu từ Korean Olympiad in Informatics, phát hành theo CC BY-NC-SA 4.0.