KOI TST 2026 - Sorting
Xem PDFĐề bài
Alice có \(N\) đồ vật, đánh số từ \(0\) đến \(N-1\). Giá trị của vật \(i\) là một số nguyên không âm \(A[i]\). Alice biết toàn bộ giá trị, còn Bob chỉ biết \(N\) và biết rằng các giá trị không âm.
Bob cần trả về một hoán vị \(P\) sao cho
Bob có thể hỏi Alice không quá \(10\,000\) lần. Trong mỗi câu hỏi:
- Bob nối các đồ vật bằng đúng \(N-1\) sợi dây, mỗi dây nối hai đồ vật phân biệt, sao cho mọi cặp đồ vật đều liên thông qua các sợi dây. Nói cách khác, các dây tạo thành một cây.
- Alice chọn một tập đồ vật độc lập trên cây: không có hai vật được chọn nối trực tiếp với nhau. Tổng giá trị các vật được chọn phải lớn nhất có thể.
- Nếu có nhiều tập tối ưu, Alice tùy ý trả về một trong số đó. Sau đó các dây được tháo bỏ.
Hãy giúp Bob sắp xếp các đồ vật với ít câu hỏi nhất.
Yêu cầu cài đặt
vector<int> sorting(int N);
vector<int> ask_question(vector<array<int, 2>> threads);
sorting(N)được gọi đúng một lần và phải trả về một hoán vị \(P\) sắp theo giá trị không giảm. Nếu có nhiều đáp án, có thể trả về bất kỳ đáp án hợp lệ nào.ask_question(threads)thực hiện một câu hỏi.threadsphải chứa đúng \(N-1\) cạnh và tạo thành một cây liên thông trên các đỉnh \(0,\ldots,N-1\).- Hàm trả về mảng nhị phân \(C\) độ dài \(N\), với \(C[i]=1\) khi Alice chọn vật \(i\).
- Cùng một mảng
threadscó thể nhận các đáp án tối ưu khác nhau ở những lần gọi khác nhau. ask_questionđược gọi nhiều nhất \(10\,000\) lần trong một test.- Chương trình nộp không được thực hiện thao tác vào/ra.
Ràng buộc
- \(5\le N\le 1\,000\).
- \(A[i]\) là số nguyên không âm và không có cận trên được công bố.
- Grader có tính thích nghi: mảng \(A\) không nhất thiết được cố định trước. Sau mỗi câu trả lời, luôn tồn tại ít nhất một mảng \(A\) phù hợp với toàn bộ câu trả lời trước đó.
- Có thể giả sử phần grader xử lý các câu hỏi trong không quá \(2\) giây và dùng không quá \(16\) MiB cho mỗi test, không tính tài nguyên của bài nộp.
Phân nhóm
| Nhóm | Điểm | Ràng buộc bổ sung |
|---|---|---|
| 1 | 7 | \(N=5\). |
| 2 | 8 | \(N\le 100\). |
| 3 | 10 | Có nhiều nhất một chỉ số \(i\) thỏa mãn \(A[i]>0\). |
| 4 | 30 | \(A[i]=0\) với mọi \(0\le i<N/2\). |
| 5 | 45 | Không có ràng buộc bổ sung. |
Ở nhóm 1 và 2, đáp án đúng nhận toàn bộ điểm nhóm. Ở nhóm 3, 4 và 5, bài sai hoặc kết thúc bất thường nhận \(0\) điểm. Nếu đáp án đúng, gọi \(Q_{\max}\) là số câu hỏi lớn nhất trong một lần chạy thuộc nhóm và xác định \(X\) như sau:
Điểm nhận được bằng \(X\%\) số điểm của nhóm.
Grader mẫu
Grader mẫu đọc \(N\) và mảng \(A\). Grader in hoán vị do sorting trả về trên dòng đầu và số lần gọi ask_question trên dòng thứ hai. Grader mẫu chỉ được đảm bảo hoạt động khi \(0\le A[i]\le 10^9\) và có thể khác grader chính thức.
Ví dụ
Input
6
5 3 3 0 8 1
Output
3 5 1 2 0 4
2
Vì hai vật \(1\) và \(2\) có cùng giá trị, hoán vị 3 5 2 1 0 4 cũng hợp lệ.
Nguồn: Kỳ thi tuyển chọn đội tuyển IOI Hàn Quốc 2026 - Vòng 2, giấy phép CC BY-NC-SA 4.0.
Kỳ thi:
- KOI TST 2026 - Vòng 2 (8 Tháng 2., 2026)
Bình luận