| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2023 - Chorus | 100 (p) | 6.0s | 1G |
| 2 | JOI 2023 - Cookies | 100 (p) | 1.0s | 1G |
| 3 | JOI 2023 - Tourism | 100 (p) | 4.0s | 1G |
Có \(2N\) chú hải ly thuộc một dàn hợp xướng đang đứng thành một hàng ngang trên sân khấu. Mỗi chú đảm nhận bè alto hoặc bè bass. Thông tin này được cho bởi xâu \(S\): chú thứ \(i\) tính từ cánh phải của sân khấu, tức từ trái sang phải khi nhìn từ phía khán giả, hát bè alto nếu ký tự thứ \(i\) của \(S\) là A, và hát bè bass nếu ký tự đó là B. Có đúng \(N\) chú hát bè alto và \(N\) chú hát bè bass.
Dàn hợp xướng sắp hát \(K\) bài. Vì các bài đều rất khó, mỗi chú hải ly chỉ hát đúng một bài, không hát các bài khác. Để tiếng hát hòa quyện, mỗi bài phải thỏa mãn tất cả các điều kiện sau:
Nhạc trưởng Bitaro muốn phân công bài hát thỏa mãn các điều kiện, nhưng nhận ra có thể chưa tồn tại cách phân công nào. Vì vậy, trước khi phân công, Bitaro có thể thực hiện nhiều lần thao tác đổi chỗ hai chú hải ly đứng cạnh nhau.
Bitaro muốn thực hiện ít thao tác nhất và nhờ bạn giúp đỡ. Cho thông tin dàn hợp xướng và số bài hát \(K\), hãy tìm số thao tác nhỏ nhất để tồn tại cách phân công hợp lệ. Với các ràng buộc của bài, luôn có thể thực hiện các thao tác để đạt được điều này.
Đọc từ đầu vào chuẩn:
N K
S
In một dòng chứa số thao tác nhỏ nhất Bitaro cần thực hiện.
A và \(N\) ký tự B.Ví dụ 1
5 2
AABABABBAB
2
Trong toàn bộ ví dụ, vị trí được tính từ trái sang phải khi nhìn từ phía khán giả. Bitaro có thể làm như sau; hai ký tự gạch chân là vị trí vừa được đổi chỗ:
AAABBABBAB.AAABBABABB.Sau đó, phân công các chú ở vị trí \(1,2,3,4,5,7\) hát bài thứ nhất; các chú ở vị trí \(6,8,9,10\) hát bài thứ hai. Cách phân công này thỏa mãn mọi điều kiện.
Không thể đạt được một cách phân công hợp lệ với ít hơn \(2\) thao tác, nên kết quả là \(2\). Ví dụ thỏa mãn tất cả các nhóm.
Ví dụ 2
5 3
AABABABBAB
0
Không cần đổi chỗ, Bitaro có thể phân công theo vị trí từ trái sang phải khi nhìn từ phía khán giả:
Mọi điều kiện đều được thỏa mãn, nên kết quả là \(0\). Ví dụ thỏa mãn tất cả các nhóm.
Ví dụ 3
3 1
BBBAAA
9
Ví dụ thỏa mãn tất cả các nhóm.
Ví dụ 4
10 3
ABABBBBABBABABABAAAA
37
Ví dụ thỏa mãn tất cả các nhóm.
JOI 2022/2023 Spring Training, Contest 3, 21/03/2023. Đề gốc của JCIOI; bản dịch tiếng Việt theo giấy phép CC BY-SA 4.0.
Rie rất thích làm bánh quy. Cô đã làm \(N\) loại bánh, trong đó có \(A_i\) chiếc thuộc loại \(i\) với \(1\le i\le N\). Để bán bánh, Rie muốn đóng tất cả bánh vào các hộp, thỏa mãn hai điều kiện:
Cho số lượng bánh từng loại và các kích thước hộp được phép, hãy xác định có thể đóng tất cả bánh vào hộp hay không. Nếu có thể, hãy đưa ra một cách đóng sử dụng ít hộp nhất.
Đọc từ đầu vào chuẩn:
N
A_1 A_2 ... A_N
M
B_1 B_2 ... B_M
Nếu có thể đóng tất cả bánh hợp lệ, gọi \(x\) là số hộp sử dụng. Hộp thứ \(k\) có \(c_k\) chiếc, mỗi chiếc thuộc một trong các loại \(v_{k,1},v_{k,2},\ldots,v_{k,c_k}\), mỗi loại đúng một chiếc. In ra đầu ra chuẩn theo định dạng:
x
c_1 v_1,1 v_1,2 ... v_1,c_1
c_2 v_2,1 v_2,2 ... v_2,c_2
...
c_x v_x,1 v_x,2 ... v_x,c_x
\(x\) phải là số hộp nhỏ nhất có thể. Nếu có nhiều cách đóng hợp lệ với số hộp nhỏ nhất, có thể in bất kỳ cách nào.
Nếu không thể đóng tất cả bánh thỏa mãn các điều kiện, in -1.
Ví dụ 1
7
1 1 1 1 1 1 1
3
1 2 3
3
2 1 7
2 2 6
3 3 4 5
Có thể đóng \(7\) chiếc bánh vào \(3\) hộp như sau:
Không thể đóng hợp lệ cả \(7\) chiếc vào nhiều nhất \(2\) hộp, nên cách trên được chấp nhận. Ngoài cách này còn có các kết quả khác được chấp nhận. Ví dụ thỏa mãn các nhóm \(1,3,4,5,6\).
Ví dụ 2
5
5 3 1 2 4
1
4
-1
Không tồn tại cách đóng hợp lệ cả \(15\) chiếc bánh, nên in -1. Ví dụ thỏa mãn các nhóm \(2,3,4,5,6\).
Ví dụ 3
7
5 4 4 2 1 1 1
2
2 6
7
6 1 2 3 4 5 6
2 2 1
2 3 1
2 4 1
2 7 1
2 3 2
2 3 2
Ví dụ thỏa mãn các nhóm \(4,5,6\).
JOI 2022/2023 Spring Training, Contest 3, 21/03/2023. Đề gốc của JCIOI; bản dịch tiếng Việt theo giấy phép CC BY-SA 4.0.
Vương quốc JOI gồm \(N\) hòn đảo, đánh số từ \(1\) đến \(N\). Có \(N-1\) cây cầu, đánh số từ \(1\) đến \(N-1\). Cầu \(i\) nối hai đảo \(A_i\) và \(B_i\) theo cả hai chiều. Từ bất kỳ đảo nào cũng có thể đi đến bất kỳ đảo khác bằng cách qua một số cây cầu.
Vương quốc có \(M\) địa điểm tham quan, đánh số từ \(1\) đến \(M\). Địa điểm \(j\) nằm trên đảo \(C_j\).
Có \(Q\) du khách, đánh số từ \(1\) đến \(Q\), dự định đến tham quan. Mỗi người thực hiện chuyến đi như sau:
Du khách \(k\) muốn ghé thăm tất cả các địa điểm \(L_k,L_k+1,\ldots,R_k\). Vì ngân sách có hạn, người đó muốn giảm thiểu số đảo khác nhau đã đặt chân đến ít nhất một lần, kể cả các đảo chỉ đi qua.
Cho thông tin vương quốc và yêu cầu của các du khách, hãy tìm số đảo nhỏ nhất có thể cho từng người.
Đọc từ đầu vào chuẩn:
N M Q
A_1 B_1
A_2 B_2
...
A_(N-1) B_(N-1)
C_1 C_2 ... C_M
L_1 R_1
L_2 R_2
...
L_Q R_Q
In \(Q\) dòng. Dòng \(k\) chứa số đảo khác nhau ít nhất mà du khách \(k\) cần đặt chân đến để ghé thăm mọi địa điểm yêu cầu.
Ví dụ 1
7 6 2
1 2
1 3
2 4
2 5
3 6
3 7
2 3 6 4 5 7
1 3
4 6
4
6
Du khách thứ nhất có thể ghé thăm đủ các địa điểm \(1,2,3\) theo hành trình:
Người này đặt chân đến bốn đảo \(1,2,3,6\). Không thể ghé đủ các địa điểm \(1,2,3\) mà chỉ đến nhiều nhất ba đảo, nên dòng đầu là \(4\).
Du khách thứ hai có thể ghé thăm đủ các địa điểm \(4,5,6\) theo hành trình:
Người này đặt chân đến sáu đảo \(1,2,3,4,5,7\). Mỗi đảo chỉ được tính một lần dù được ghé lại. Không thể ghé đủ các địa điểm \(4,5,6\) mà chỉ đến nhiều nhất năm đảo, nên dòng thứ hai là \(6\).
Ví dụ thỏa mãn các nhóm \(1,2,4,5,6\).
Ví dụ 2
8 8 9
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 6 4 3 5 2 4 7
3 5
4 6
6 8
1 4
2 3
6 8
5 5
2 8
1 2
3
4
6
6
3
6
1
6
3
Ví dụ thỏa mãn các nhóm \(1,2,3,6\).
Ví dụ 3
10 7 9
6 5
3 6
9 3
8 3
7 8
7 1
2 5
7 10
8 4
9 4 10 1 10 7 6
4 4
1 3
1 3
6 7
3 6
3 3
1 5
2 5
1 2
1
6
6
4
3
1
7
5
4
Ví dụ thỏa mãn các nhóm \(1,2,6\).
JOI 2022/2023 Spring Training, Contest 3, 21/03/2023. Đề gốc của JCIOI; bản dịch tiếng Việt theo giấy phép CC BY-SA 4.0.