| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | NOI Singapore 2026 - Area 2 | 100 (p) | 1.0s | 1G |
| 2 | NOI Singapore 2026 - Hungry Cats | 100 (p) | 1.0s | 1G |
| 3 | NOI Singapore 2026 - Airplane 2 | 100 (p) | 1.0s | 1G |
| 4 | NOI Singapore 2026 - Digits | 100 (p) | 1.0s | 1G |
| 5 | NOI Singapore 2026 - Mushroom Ring | 100 (p) | 2.5s | 1G |
Ziv có \(n\) cặp que, được đánh số từ \(1\) đến \(n\). Cặp thứ \(i\) gồm hai que, mỗi que dài \(a_i\).
Ziv muốn chọn hai chỉ số khác nhau \(x\) và \(y\) (\(x \ne y\)) để dựng một khung hình chữ nhật. Hai cạnh của hình chữ nhật dài \(a_x\) và \(a_y\), nên diện tích bằng \(a_x \times a_y\).
Hãy tìm diện tích lớn nhất của một khung hình chữ nhật mà Ziv có thể dựng.
In ra một số nguyên duy nhất: diện tích lớn nhất có thể.
| Phần | Điểm | Giới hạn thêm |
|---|---|---|
| 1 | 20 | \(n=2\) |
| 2 | 20 | \(n=3\) |
| 3 | 60 | Không có giới hạn thêm |
Ví dụ 1
2
8
9
72
Chỉ có một khung có thể tạo: \(8 \times 9\), diện tích bằng \(72\).
Ví dụ 2
3
16
44
18
792
Ba diện tích có thể tạo là \(16\times44=704\), \(16\times18=288\) và \(44\times18=792\). Giá trị lớn nhất là \(792\).
Ví dụ 3
8
6
7
6
7
99
99
69
1
9801
Tại vương quốc mèo ăn thịt đồng loại, ngày hội National Cat Day sắp diễn ra. Có \(n\) con mèo tham gia, đánh số từ \(1\) đến \(n\). Con mèo thứ \(i\) có mức hạnh phúc \(h_i\).
Tại bất kỳ thời điểm nào, một con mèo có thể ăn một con mèo có mức hạnh phúc nhỏ hơn nghiêm ngặt. Sau đó:
Hãy xác định liệu có thể thực hiện các hành động sao cho cuối cùng chỉ còn đúng một con mèo hay không.
In YES nếu có thể chỉ còn một con mèo, ngược lại in NO.
| Phần | Điểm | Giới hạn thêm |
|---|---|---|
| 1 | 8 | \(n=2\) |
| 2 | 10 | \(n\le3\) |
| 3 | 6 | \(h_1=h_n\) |
| 4 | 18 | \(n\le1000\) |
| 5 | 28 | \(h_i\le h_{i+1}\) với mọi \(1\le i<n\) |
| 6 | 30 | Không có giới hạn thêm |
Ví dụ 1
2
3141 59
YES
Ví dụ 2
3
31 41 59
YES
Con mèo thứ hai có thể ăn con thứ nhất, sau đó bị con thứ ba ăn.
Ví dụ 3
5
10 0 24 25 10
NO
Không tồn tại thứ tự ăn nào để cuối cùng chỉ còn một con mèo.
Ví dụ 4
6
2 25 11 5 20 26
NO
Trên một máy bay có \(h\) hàng ghế và \(w\) cột ghế. Hàng được đánh số từ \(1\) đến \(h\) theo chiều từ trên xuống, cột được đánh số từ \(1\) đến \(w\) theo chiều từ trái sang. Ghế ở hàng \(i\), cột \(j\) được ký hiệu \((i,j)\).
Pan bán vé cho \(k\) hành khách, đánh số từ \(1\) đến \(k\). Hành khách thứ \(i\) có cột đã định \(c_i\); Pan được chọn một hàng \(r_i\) bất kỳ cho người đó. Không được có hai hành khách ngồi cùng một ghế.
Để bảo đảm cân bằng, hành khách ở hàng trước không được ngồi ở cột nằm sau. Nói cách khác, với hai ghế đã gán \((a_1,b_1)\) và \((a_2,b_2)\), nếu \(a_1<a_2\) thì phải có \(b_1\le b_2\).
Độ hài lòng chung là khoảng cách Manhattan nhỏ nhất giữa mọi cặp ghế đã gán. Khoảng cách giữa \((a_1,b_1)\) và \((a_2,b_2)\) là
Hãy tìm độ hài lòng chung lớn nhất trong mọi cách gán hàng hợp lệ, hoặc xác định rằng không tồn tại cách gán hợp lệ.
In độ hài lòng chung lớn nhất. Nếu không có cách gán hợp lệ, in \(-1\).
| Phần | Điểm | Giới hạn thêm |
|---|---|---|
| 1 | 5 | \(w=1\) |
| 2 | 5 | \(c_i=i\) với mọi \(1\le i\le k\) |
| 3 | 7 | \(c\) là cấp số cộng: \(c_{i+1}-c_i=c_i-c_{i-1}\) với mọi \(2\le i<k\) |
| 4 | 9 | \(h,w,k\le8\) |
| 5 | 31 | \(h,w,k\le3000\) |
| 6 | 16 | Các \(c_i\) đôi một khác nhau |
| 7 | 27 | Không có giới hạn thêm |
Ví dụ 1
5 1 6
1 1 1 1 1 1
-1
Máy bay chỉ có \(5\) ghế nên không thể xếp \(6\) hành khách vào các ghế khác nhau.
Ví dụ 2
2 7 3
1 2 3
1
Ví dụ 3
3 7 3
1 4 7
4
Ví dụ 4
50 50 10
34 21 28 44 41 28 5 10 16 24
9
Ví dụ 5
4 11 5
1 1 11 7 3
2
Một cách tối ưu là xếp hành khách thứ nhất ở hàng \(1\) và các hành khách còn lại ở hàng \(4\). Khoảng cách nhỏ nhất là khoảng cách giữa ghế \((4,1)\) và \((4,3)\), bằng \(2\).
Hình 1: Một cách xếp hợp lệ tối ưu cho ví dụ 5.
Hình 2: Một cách xếp không hợp lệ vì vi phạm điều kiện cân bằng giữa thứ tự hàng và cột.
Số yêu thích của Jayden là chuỗi \(x\) gồm \(m\) chữ số. Ziv đưa cho cậu \(n\) chuỗi \(m\) chữ số khác, ký hiệu \(v_1,v_2,\ldots,v_n\). Mọi chữ số đều thuộc \([0,k-1]\). Ký hiệu \(v_i[j]\) là chữ số thứ \(j\) từ trái sang của \(v_i\).
Một thao tác trên \(v_i\) được thực hiện như sau:
Chi phí của thao tác là \(c_l+c_r\) (nếu \(l=r\) thì chi phí là \(2c_l\)).
Với từng \(v_i\) một cách độc lập, hãy tìm tổng chi phí nhỏ nhất để biến \(v_i\) thành \(x\) bằng một số bất kỳ thao tác. Nếu không thể, in \(-1\).
Các chuỗi có thể có chữ số 0 ở đầu, vì vậy cần đọc chúng dưới dạng chuỗi.
In \(n\) dòng. Dòng thứ \(i\) là chi phí nhỏ nhất để biến \(v_i\) thành \(x\), hoặc \(-1\) nếu không thể.
| Phần | Điểm | Giới hạn thêm |
|---|---|---|
| 1 | 5 | \(m=1\) và mọi \(a_i=1\) |
| 2 | 13 | \(m=2\) và mọi \(a_i=1\) |
| 3 | 10 | \(k=2\) và mọi \(c_i\) bằng nhau |
| 4 | 16 | Mọi \(c_i\) bằng nhau |
| 5 | 24 | \(n\le20\) |
| 6 | 32 | Không có giới hạn thêm |
Ví dụ 1
6 3 8
1 2 3
3 1 4
676
356
431
676
767
133
715
16
42
0
-1
25
37
Với \(v_1=356\), có thể thực hiện lần lượt các thao tác \([1,2]\), \([1,1]\), \([1,1]\) để được \(356\to476\to576\to676\), tổng chi phí \(4+6+6=16\). Chuỗi \(v_3\) đã bằng \(x\). Không có cách biến \(v_4=767\) thành \(676\).
Ví dụ 2
3 4 2
1 1 1 1
1 1 1 1
1001
1110
1100
0110
2
4
2
Ví dụ 3
1 1 10
1
67
6
7
1206
Ví dụ 4
1 2 10
1 1
1 1000000000
24
83
1000000007
Làng Ốc Sên gồm một vòng \(n\) cây nấm khổng lồ, đánh số từ \(1\) đến \(n\). Bên cạnh mỗi cây nấm có \(n-1\) biển chỉ đến tất cả các cây nấm khác, tổng cộng \(n(n-1)\) biển.
Trên một số biển có ghi \(m\) đoạn số liên tiếp. Biển đặt cạnh nấm \(u_i\) và chỉ đến nấm \(v_i\) mang mọi số từ \(a_i\) đến \(b_i\). Các biển ban đầu thỏa hai quy tắc rõ ràng:
Không có ràng buộc tương ứng nào đối với \(v_i\).
Một con ốc đang ở nấm \(c\) muốn đến nấm \(d\). Nếu \(c=d\), nó đã đến nơi. Nếu không, nó tìm trong các biển cạnh nấm \(c\) biển có chứa số \(d\), đi theo biển đó tới \(v_i\), rồi lặp lại. Nhờ hai quy tắc trên, tại mỗi cây nấm có nhiều nhất một biển chứa \(d\).
Ốc bị kẹt nếu không tìm được biển chứa \(d\); nó cũng có thể đi vào chu trình vô hạn mà không qua \(d\).
Độ hữu dụng của hệ thống biển là số cặp có thứ tự \((s,d)\) sao cho ốc xuất phát ở \(s\) có thể đến \(d\) bằng cách đi theo các biển.
Được phép thực hiện nhiều nhất \(k\) chỉnh sửa. Mỗi chỉnh sửa là thêm một số vào một biển hoặc xóa một số khỏi một biển. Sau chỉnh sửa, hai quy tắc rõ ràng vẫn phải được thỏa mãn; các số trên mỗi biển không nhất thiết còn tạo thành một đoạn liên tiếp.
Hãy tìm độ hữu dụng lớn nhất có thể đạt được.
In một số nguyên: độ hữu dụng lớn nhất sau không quá \(k\) chỉnh sửa.
Dữ liệu bảo đảm hai quy tắc rõ ràng nêu trong đề.
| Phần | Điểm | Giới hạn thêm |
|---|---|---|
| 1 | 6 | \(n\le200,m\le400,k=0\) |
| 2 | 6 | \(n\le1500,m\le3000,k=0\) |
| 3 | 22 | \(n\le1500,m\le3000,k\le10\) |
| 4 | 11 | \(n\le1500,m\le3000,k\le1000\) |
| 5 | 7 | \(n\le1500,m\le3000\) |
| 6 | 20 | \(n\le30\,000,m\le60\,000,k=0\) |
| 7 | 15 | \(n\le30\,000,m\le60\,000\) |
| 8 | 13 | Không có giới hạn thêm |
Ví dụ 1
6 7 0
1 2 2 3
2 5 3 3
2 5 6 6
4 5 2 3
5 4 1 1
5 6 3 3
6 1 2 5
8
Ví dụ 2
6 7 1
1 2 2 3
2 5 3 3
2 5 6 6
4 5 2 3
5 4 1 1
5 6 3 3
6 1 2 5
10
Ví dụ 3
6 7 2
1 2 2 3
2 5 3 3
2 5 6 6
4 5 2 3
5 4 1 1
5 6 3 3
6 1 2 5
13