| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2025 - Grid Coloring | 100 (p) | 2.0s | 1G |
| 2 | JOI 2025 - Bitaro the Brave 2 | 100 (p) | 1.0s | 1G |
| 3 | JOI 2025 - Mi Teleférico | 100 (p) | 2.0s | 1G |
| 4 | JOI 2025 - Just Long Neckties 2 | 100 (p) | 3.0s | 2G |
| 5 | JOI 2025 - Post Office | 100 (p) | 2.0s | 1G |
Chủ tịch K muốn tạo ra một hoa văn trên bảng ô vuông gồm \(N\) hàng và \(N\) cột. Ô ở hàng thứ \(i\) từ trên xuống (\(1 \le i \le N\)) và cột thứ \(j\) từ trái sang (\(1 \le j \le N\)) được gọi là ô \((i,j)\). Mỗi ô sẽ được tô một màu, trong đó mỗi màu được biểu diễn bằng một số nguyên.
Hiện tại, các ô ở cột đầu tiên và hàng đầu tiên đã được tô màu. Cụ thể, ô \((i,1)\) (\(1 \le i \le N\)) có màu \(A_i\), còn ô \((1,j)\) (\(1 \le j \le N\)) có màu \(B_j\). Dữ liệu bảo đảm \(A_1=B_1\).
Chủ tịch K sẽ tô các ô còn lại theo thứ tự hàng \(i=2,3,\ldots,N\). Trong mỗi hàng \(i\), ông lần lượt xét các cột \(j=2,3,\ldots,N\) và tô ô \((i,j)\) bằng màu có số lớn hơn trong hai màu của ô \((i-1,j)\) và ô \((i,j-1)\). Nếu hai màu có cùng số thì tô ô \((i,j)\) bằng màu đó.
Sau khi cả \(N^2\) ô đã được tô, Chủ tịch K muốn biết màu nào xuất hiện trên nhiều ô nhất và số ô được tô màu đó. Cho kích thước bảng cùng thông tin màu của cột đầu tiên và hàng đầu tiên, hãy tìm hai giá trị này. Nếu có nhiều màu cùng xuất hiện trên nhiều ô nhất, hãy chọn màu có số lớn nhất trong số đó.
Dữ liệu vào có dạng:
N
A_1 A_2 ... A_N
B_1 B_2 ... B_N
In ra một dòng chứa hai số nguyên, cách nhau bởi một dấu cách: số của màu xuất hiện trên nhiều ô nhất và số ô được tô màu đó, theo đúng thứ tự này. Nếu có nhiều màu cùng xuất hiện trên nhiều ô nhất, hãy chọn màu có số lớn nhất.
Ví dụ 1
3
5 2 5
5 3 1
5 4
Ví dụ 2
3
1 7 8
1 3 5
8 3
Sau khi tô xong, số của màu trên từng ô như sau:
Hai màu xuất hiện trên nhiều ô nhất là \(7\) và \(8\), mỗi màu được tô trên \(3\) ô. Trong trường hợp này, chọn màu có số lớn hơn là \(8\), nên in ra \(8\) rồi đến \(3\), cách nhau bởi một dấu cách.
Ví dụ này thỏa mãn ràng buộc của các subtasks \(1,2,4,5\).
Ví dụ 3
4
2 1 2 1
2 1 1 2
2 10
Ví dụ này thỏa mãn ràng buộc của các subtasks \(1,2,3,5\).
Đề bài Grid Coloring, JOI 2024/2025, vòng chung kết quốc gia, bài 1 (tiếng Nhật) của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Dũng sĩ Bitaro lên đường phiêu lưu để đánh bại các quái vật.
Bitaro có một giá trị gọi là sức mạnh, với giá trị ban đầu là \(x\). Có \(N\) quái vật, được đánh số từ \(1\) đến \(N\). Để đánh bại quái vật \(i\) (\(1 \le i \le N\)), sức mạnh của Bitaro phải ít nhất là \(A_i\). Sau khi đánh bại quái vật này, sức mạnh của Bitaro tăng thêm \(B_i\).
Bitaro muốn đánh bại tất cả quái vật theo cách sau:
Cho thông tin về các quái vật, hãy tìm giá trị sức mạnh ban đầu \(x\) nhỏ nhất để Bitaro có thể đánh bại tất cả quái vật.
Dữ liệu vào có dạng:
N
A_1 A_2 ... A_N
B_1 B_2 ... B_N
In ra một dòng chứa một số nguyên là giá trị sức mạnh ban đầu \(x\) nhỏ nhất để Bitaro có thể đánh bại tất cả quái vật.
Ví dụ 1
5
1 3 2 8 6
4 3 1 1 2
1
Với sức mạnh ban đầu bằng \(1\), Bitaro có thể đánh bại tất cả quái vật theo thứ tự sau:
Không có cách nào đánh bại tất cả quái vật khi sức mạnh ban đầu không quá \(0\), nên đáp án là \(1\).
Ví dụ này thỏa mãn ràng buộc của các subtasks \(1,2,3,5\).
Ví dụ 2
5
1 6 3 3 2
1 2 1 0 1
3
Với sức mạnh ban đầu bằng \(3\), Bitaro có thể đánh bại tất cả quái vật theo thứ tự sau:
Không có cách nào đánh bại tất cả quái vật khi sức mạnh ban đầu không quá \(2\), nên đáp án là \(3\).
Ví dụ này thỏa mãn ràng buộc của các subtasks \(1,2,3,5\).
Ví dụ 3
10
11 9 8 12 7 7 8 12 9 10
1 1 1 1 1 1 1 1 1 1
9
Ví dụ này thỏa mãn ràng buộc của tất cả các subtasks.
Ví dụ 4
7
1125 638 0 37 737 820 1202
23 984 558 350 52 345 580
0
Ví dụ này thỏa mãn ràng buộc của các subtasks \(1,2,3,5\).
Đề bài Bitaro the Brave 2, JOI 2024/2025, vòng chung kết quốc gia, bài 2 (tiếng Nhật) của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
La Paz, thủ đô của Bolivia, nổi tiếng không chỉ là một điểm du lịch mà còn nhờ mạng lưới cáp treo mang tên Mi Teleférico. Bạn đến La Paz du lịch và muốn tham quan càng nhiều nơi càng tốt. Trong bài toán này, ta xét tình huống được đơn giản hóa như sau.
La Paz có \(N\) ga cáp treo, được đánh số từ \(1\) đến \(N\) theo thứ tự độ cao tăng dần. Có \(M\) tuyến cáp treo một chiều, được đánh số từ \(1\) đến \(M\), và \(P\) công ty cáp treo, được đánh số từ \(1\) đến \(P\). Mỗi tuyến do một công ty quản lý. Tuyến \(i\) (\(1 \le i \le M\)) đi từ ga \(A_i\) đến ga \(B_i\) và do công ty \(C_i\) quản lý. Mỗi tuyến luôn đi từ ga thấp hơn đến ga cao hơn, tức là \(A_i<B_i\).
Để thuận tiện cho hành khách, cơ quan giao thông La Paz phát hành vé đi không giới hạn. Trên mỗi vé có hai số nguyên \(l,r\) thỏa mãn \(1 \le l \le r \le P\). Vé cho phép người sở hữu đi các tuyến do các công ty \(l,l+1,\ldots,r\) quản lý. Nói cách khác, với \(1 \le i \le M\), có thể dùng vé để đi tuyến \(i\) nếu \(l \le C_i \le r\). Một vé có thể được dùng cho nhiều tuyến. Ta gọi vé này là vé \((l,r)\).
Có \(Q\) du khách đến La Paz, được đánh số từ \(1\) đến \(Q\). Du khách \(j\) (\(1 \le j \le Q\)) có vé \((L_j,R_j)\) và \(X_j\) boliviano tiền mặt.
Mục tiêu của mỗi du khách là bảo đảm rằng từ ga \(1\) có thể đi đến từng ga, chỉ sử dụng các tuyến mà vé của mình cho phép đi. Để đạt mục tiêu này, du khách \(j\) (\(1 \le j \le Q\)) có thể đổi vé theo các bước sau, nhưng mỗi người chỉ được đổi tối đa một lần:
Cho thông tin về các ga, các tuyến và các du khách, hãy xác định với từng du khách liệu họ có thể đạt được mục tiêu mà không chi quá số tiền mặt đang có hay không.
Dữ liệu vào có dạng:
N M P
A_1 B_1 C_1
A_2 B_2 C_2
...
A_M B_M C_M
Q
L_1 R_1 X_1
L_2 R_2 X_2
...
L_Q R_Q X_Q
In ra \(Q\) dòng. Dòng thứ \(j\) (\(1 \le j \le Q\)) chứa Yes nếu du khách \(j\) có thể đạt được mục tiêu trong phạm vi số tiền đang có, hoặc No nếu không thể.
Ví dụ 1
4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
4
3 7 0
5 6 0
3 4 0
1 9 0
Yes
No
No
Yes
Du khách \(1\) ban đầu có vé \((3,7)\) và \(0\) boliviano tiền mặt. Người này có thể đạt mục tiêu mà không cần đổi vé. Vé \((3,7)\) cho phép đi bốn tuyến \(1,2,3,4\), nhờ đó có thể đi từ ga \(1\) đến từng ga như sau:
Vì vậy, dòng thứ nhất là Yes.
Du khách \(2\) ban đầu có vé \((5,6)\) và \(0\) boliviano tiền mặt. Vé này chỉ cho phép đi hai tuyến \(3,4\), nên không thể đi từ ga \(1\) đến ga \(4\). Hơn nữa, vì không có tiền mặt, người này không thể đổi sang một vé khác. Do đó, du khách \(2\) không thể đạt mục tiêu, và dòng thứ hai là No.
Du khách \(3\) cũng không thể đạt mục tiêu, còn du khách \(4\) có thể đạt mục tiêu. Vì vậy, dòng thứ ba là No và dòng thứ tư là Yes.
Ví dụ này thỏa mãn ràng buộc của tất cả các subtasks.
Ví dụ 2
4 6 10
1 2 3
2 4 7
1 2 6
2 3 5
3 4 2
3 4 8
3
5 6 10
3 4 1
7 8 3
Yes
No
Yes
Thông tin về các ga và các tuyến giống ví dụ \(1\).
Du khách \(1\) ban đầu có vé \((5,6)\) và \(10\) boliviano tiền mặt. Người này có thể đạt mục tiêu bằng cách đổi vé như sau:
Vì vậy, dòng thứ nhất là Yes.
Du khách \(2\) ban đầu có vé \((3,4)\) và \(1\) boliviano tiền mặt. Dù đổi vé theo cách nào trong phạm vi số tiền đang có, người này cũng không thể đạt mục tiêu. Vì vậy, dòng thứ hai là No.
Du khách \(3\) có thể đạt mục tiêu, nên dòng thứ ba là Yes.
Ví dụ này thỏa mãn ràng buộc của các subtasks \(2,3,5,6,7\).
Ví dụ 3
3 1 1000000000
1 2 6
1
1 1000000000 1000000000
No
Với các tuyến đã cho, không thể đi từ ga \(1\) đến ga \(3\). Vì vậy, du khách không thể đạt mục tiêu bất kể sở hữu vé nào.
Ví dụ này thỏa mãn ràng buộc của các subtasks \(6,7\).
Ví dụ 4
5 9 2000
2 3 1814
2 3 457
1 2 1226
3 4 1354
1 5 1050
1 2 1725
2 3 1383
1 5 1626
1 4 1795
5
850 1872 128
82 428 1217
487 924 573
1639 1926 202
202 420 25
Yes
Yes
Yes
Yes
No
Ví dụ này thỏa mãn ràng buộc của các subtasks \(5,6,7\).
Đề bài Mi Teleférico, JOI 2024/2025, vòng chung kết quốc gia, bài 3 (tiếng Nhật) của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Công ty Just Odd Inventions nổi tiếng với những phát minh kỳ lạ. Trong bài toán này, ta gọi tắt công ty là JOI.
Nhân dịp kỷ niệm \(5\) năm ra mắt sản phẩm chủ lực "Cà vạt chỉ dài", công ty JOI đã phát triển sản phẩm mới "Cà vạt chỉ có thể dài thêm". Đúng như tên gọi, loại cà vạt mới này có đặc điểm là có thể kéo dài tùy ý, không có giới hạn.
Để quảng bá sản phẩm mới, công ty JOI quyết định tổ chức một buổi giới thiệu và chọn bạn làm người dẫn chương trình. Đầu tiên, một số người mẫu đeo loại cà vạt mới sẽ bước lên sân khấu. Ban đầu, cà vạt của tất cả người mẫu đều có độ dài bằng \(1\).
Sau đó, bạn thực hiện tổng cộng \(N\) màn trình diễn để khán giả thấy được khả năng kéo dài của cà vạt. Trong mỗi màn trình diễn, trước tiên bạn mời khán giả hô lên một số tùy ý, gọi số đó là \(x\). Tiếp theo, bạn chọn đáp lại hoặc bỏ qua số vừa được hô lên.
Nếu chọn đáp lại, bạn phải chọn một người mẫu trên sân khấu có cà vạt với độ dài hiện tại không vượt quá \(x\), rồi đặt độ dài cà vạt của người đó thành đúng \(x\). Bạn cũng được phép chọn người mẫu có cà vạt vốn đã dài đúng \(x\). Tuy nhiên, nếu không có người mẫu nào có thể được chọn thì buổi giới thiệu thất bại. Nếu chọn bỏ qua, bạn không làm gì cả.
Tuy nhiên, nếu bạn bỏ qua số khán giả hô lên từ hai lần liên tiếp trở lên, khán giả sẽ tức giận và buổi giới thiệu cũng thất bại.
Số người mẫu xuất hiện trên sân khấu, ký hiệu là \(k\) (\(k \ge 1\)), vẫn chưa được quyết định. Vì việc thuê người mẫu tốn nhiều tiền, công ty muốn \(k\) nhỏ nhất có thể. Số người mẫu tối thiểu cần có để buổi giới thiệu không thất bại phụ thuộc vào các số mà khán giả hô lên trong từng màn trình diễn. May mắn thay, bạn có khả năng tiên tri và biết trước rằng ở màn trình diễn thứ \(i\) (\(1 \le i \le N\)), khán giả sẽ hô lên số \(A_i\).
Cho thông tin về các số khán giả sẽ hô lên, hãy tìm số người mẫu \(k\) nhỏ nhất cần có để buổi giới thiệu không thất bại.
Dữ liệu vào có dạng:
N
A_1 A_2 ... A_N
In trên một dòng số người mẫu \(k\) nhỏ nhất cần có để buổi giới thiệu không thất bại.
Ví dụ 1
5
5 3 4 2 1
2
Khi \(k = 2\), chẳng hạn, bạn có thể tổ chức buổi giới thiệu như sau.
Ban đầu, hai người mẫu đeo cà vạt mới bước lên sân khấu. Cà vạt của mỗi người đều có độ dài bằng \(1\).
Ở màn trình diễn thứ \(1\), khán giả hô lên số \(5\) và bạn bỏ qua.
Ở màn trình diễn thứ \(2\), khán giả hô lên số \(3\). Bạn đáp lại bằng cách chọn người mẫu thứ nhất và đặt độ dài cà vạt của người đó thành \(3\). Độ dài cà vạt của hai người mẫu lúc này lần lượt là \(3\) và \(1\).
Ở màn trình diễn thứ \(3\), khán giả hô lên số \(4\). Bạn đáp lại bằng cách chọn người mẫu thứ nhất và đặt độ dài cà vạt của người đó thành \(4\). Độ dài cà vạt của hai người mẫu lúc này lần lượt là \(4\) và \(1\).
Ở màn trình diễn thứ \(4\), khán giả hô lên số \(2\). Bạn đáp lại bằng cách chọn người mẫu thứ hai và đặt độ dài cà vạt của người đó thành \(2\). Độ dài cà vạt của hai người mẫu lúc này lần lượt là \(4\) và \(2\).
Ở màn trình diễn thứ \(5\), khán giả hô lên số \(1\) và bạn bỏ qua.
Khi \(k = 1\), buổi giới thiệu luôn thất bại. Chẳng hạn, nếu bạn chọn đáp lại ở các màn trình diễn thứ \(2, 3, 4\) như cách trên, sau màn trình diễn thứ \(3\), cà vạt của người mẫu duy nhất đã có độ dài bằng \(4\). Do đó, ở màn trình diễn thứ \(4\), bạn không thể chọn người mẫu có cà vạt dài không quá \(2\), khiến buổi giới thiệu thất bại.
Vì vậy, số người mẫu \(k\) nhỏ nhất cần có để buổi giới thiệu không thất bại là \(2\), nên in ra \(2\).
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 3, 4, 5, 6, 7\).
Ví dụ 2
6
2 1 1 2 2 1
1
Khi \(k = 1\), chẳng hạn, bạn có thể tổ chức buổi giới thiệu như sau.
Ban đầu, một người mẫu đeo cà vạt mới bước lên sân khấu. Cà vạt của người đó có độ dài bằng \(1\).
Ở màn trình diễn thứ \(1\), khán giả hô lên số \(2\) và bạn bỏ qua.
Ở màn trình diễn thứ \(2\), khán giả hô lên số \(1\). Bạn đáp lại bằng cách chọn người mẫu duy nhất trên sân khấu và đặt độ dài cà vạt của người đó thành \(1\).
Ở màn trình diễn thứ \(3\), khán giả hô lên số \(1\). Bạn đáp lại bằng cách chọn người mẫu duy nhất trên sân khấu và đặt độ dài cà vạt của người đó thành \(1\).
Ở màn trình diễn thứ \(4\), khán giả hô lên số \(2\). Bạn đáp lại bằng cách chọn người mẫu duy nhất trên sân khấu và đặt độ dài cà vạt của người đó thành \(2\).
Ở màn trình diễn thứ \(5\), khán giả hô lên số \(2\). Bạn đáp lại bằng cách chọn người mẫu duy nhất trên sân khấu và đặt độ dài cà vạt của người đó thành \(2\).
Ở màn trình diễn thứ \(6\), khán giả hô lên số \(1\) và bạn bỏ qua.
Lưu ý rằng ở các màn trình diễn thứ \(2\) và \(3\) trong cách trên, bạn chọn người mẫu có cà vạt vốn đã dài \(1\) và đặt độ dài cà vạt thành \(1\) một lần nữa. Việc chọn người mẫu mà không làm thay đổi độ dài cà vạt như vậy cũng được phép.
Vì vậy, số người mẫu \(k\) nhỏ nhất cần có để buổi giới thiệu không thất bại là \(1\), nên in ra \(1\).
Ví dụ này thỏa mãn ràng buộc của tất cả các bài toán con.
Ví dụ 3
10
2 4 6 7 4 5 5 3 4 1
3
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 4, 5, 6, 7\).
Bản dịch tiếng Việt từ đề chính thức tiếng Anh, đối chiếu với đề gốc tiếng Nhật của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Đất nước JOI có \(N\) bưu điện, được đánh số từ \(1\) đến \(N\). Mỗi bưu điện được chỉ định đúng một bưu điện để gửi hàng đến: bưu điện \(i\) gửi hàng đến bưu điện \(P_i\). Có thể xảy ra trường hợp \(P_i = i\).
Nếu một kiện hàng được gửi đi từ bưu điện \(i\) vào thời điểm \(t\), kiện hàng đó sẽ đến bưu điện \(P_i\) vào thời điểm \(t + 1\). Tuy nhiên, trong thời gian đang gửi một kiện hàng, bưu điện đó không thể gửi đi một kiện hàng khác. Mỗi bưu điện có thể lưu giữ số lượng kiện hàng không giới hạn tại bất kỳ thời điểm nào.
Hiện có \(M\) kiện hàng cần được chuyển ở đất nước JOI. Kiện hàng thứ \(j\) đến bưu điện \(A_j\) vào thời điểm \(0\) và cuối cùng phải được chuyển đến bưu điện \(B_j\) đã được chỉ định.
Cho thông tin về các bưu điện và các kiện hàng, hãy xác định có thể chuyển tất cả các kiện hàng đến đúng bưu điện được chỉ định hay không. Nếu có thể, hãy tìm thời điểm sớm nhất mà kiện hàng cuối cùng đến được bưu điện được chỉ định của nó.
Dữ liệu vào có dạng:
N
P_1 P_2 ... P_N
M
A_1 B_1
A_2 B_2
...
A_M B_M
In trên một dòng thời điểm sớm nhất mà kiện hàng cuối cùng đến được bưu điện được chỉ định của nó, nếu có thể chuyển tất cả các kiện hàng đến đúng nơi. Nếu không thể, in ra -1.
Ví dụ 1
5
1 1 2 3 4
3
3 2
3 1
3 1
3
Chẳng hạn, có thể gửi các kiện hàng như sau để tất cả đều đến đúng bưu điện được chỉ định không muộn hơn thời điểm \(3\).
Ở thời điểm \(0\), các kiện hàng \(1, 2, 3\) đều ở bưu điện \(3\). Gửi kiện hàng \(2\) đến bưu điện \(2\).
Ở thời điểm \(1\), kiện hàng \(2\) ở bưu điện \(2\), còn các kiện hàng \(1, 3\) ở bưu điện \(3\). Từ bưu điện \(2\), gửi kiện hàng \(2\) đến bưu điện \(1\); đồng thời, từ bưu điện \(3\), gửi kiện hàng \(3\) đến bưu điện \(2\).
Ở thời điểm \(2\), kiện hàng \(2\) ở bưu điện \(1\), kiện hàng \(3\) ở bưu điện \(2\), còn kiện hàng \(1\) ở bưu điện \(3\). Từ bưu điện \(2\), gửi kiện hàng \(3\) đến bưu điện \(1\); đồng thời, từ bưu điện \(3\), gửi kiện hàng \(1\) đến bưu điện \(2\).
Ở thời điểm \(3\), các kiện hàng \(2, 3\) ở bưu điện \(1\), còn kiện hàng \(1\) ở bưu điện \(2\). Lúc này, tất cả các kiện hàng đều đã đến đúng nơi.
Không thể chuyển tất cả các kiện hàng đến đúng bưu điện được chỉ định không muộn hơn thời điểm \(2\), nên in ra \(3\).
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 3, 4, 6, 7\).
Ví dụ 2
3
2 1 3
1
1 3
-1
Dù gửi hàng theo cách nào, cũng không thể chuyển một kiện hàng từ bưu điện \(1\) đến bưu điện \(3\), nên in ra -1.
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 2, 7\).
Ví dụ 3
7
1 1 2 3 4 5 6
6
4 2
5 1
5 3
6 2
7 3
7 6
5
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 4, 6, 7\).
Ví dụ 4
4
4 1 2 3
4
4 1
4 1
2 3
2 3
4
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 5, 7\).
Ví dụ 5
7
1 1 1 3 3 4 4
5
6 1
6 3
7 1
5 1
5 1
5
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 6, 7\).
Ví dụ 6
11
3 1 2 5 6 7 8 4 4 5 10
6
2 1
9 8
11 8
10 4
5 6
5 7
6
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 7\).
Bản dịch tiếng Việt từ đề chính thức tiếng Anh, đối chiếu với đề gốc tiếng Nhật của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.