Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

HUE-ICTC 2024

VÒNG SƠ LOẠI
Bảng thi: PRO CHALLENGE
Thời gian làm bài: 180 phút
Ngày thi: 17-03-2024

TỔNG QUAN ĐỀ THI

Bài 1. Không thể gấp đôi — NDOU (100 điểm) . . . . . . . . . . . . . . . . . . . . . 2


Bài 2. Chuỗi con đối xứng — SUBPAL (100 điểm) . . . . . . . . . . . . . . . . . . . . . 3
Bài 3. Pháp thuật — MAGIC (100 điểm) . . . . . . . . . . . . . . . . . . . . . 4
Bài 4. Đổi quà — GIFT (100 điểm) . . . . . . . . . . . . . . . . . . . . . 7
Bài 5. Mật mã online — ONCODE (100 điểm) . . . . . . . . . . . . . . . . . . . . . 9

Lưu ý: Thí sinh không được phép sử dụng các định hướng biên dịch chương trình có các từ khoá sau:
pragma, optimize, target, O3, Ofast, unroll-loops, avx, avx2, fma, omit-frame-pointer.

HUE-ICTC 2024 – PRO CHALLENGE Trang 1 trên 9


Bài 1. Không thể gấp đôi — NDOU

Xâu ký tự S = s1 s2 . . . sn được gọi là xâu ký tự gấp đôi khi và chỉ khi n là một số nguyên chẵn, đồng
thời si = si+ n2 với mọi 1 ≤ i ≤ n2 . Ví dụ, baba, bonbon là các xâu ký tự gấp đôi, còn abba hay bonba thì
không.

Xâu ký tự B = b1 b2 . . . bn được gọi là chuỗi con của xâu ký tự A = a1 a2 . . . am khi và chỉ khi tồn tại dãy
chỉ số i1 , i2 , . . . in sao cho 0 < i1 < i2 < . . . < in < m + 1 và bj = aij với mọi 1 ≤ j ≤ n. Ví dụ, bongbang
có các chuỗi con là bonba, boban và gan; nhưng không có các chuỗi con bao, onao hay gao.

Xâu ký tự S được gọi là xâu ký tự không thể gấp đôi khi và chỉ khi mọi chuỗi con của S đều không phải
là xâu ký tự gấp đôi. Ví dụ, hueict là xâu ký tự không thể gấp đôi; nhưng bongbang không phải xâu ký
tự không thể gấp đôi, vì xâu có chuỗi con bngbng là xâu ký tự gấp đôi.
Cho xâu ký tự C = c1 c2 . . . cn , hãy đếm số cặp chỉ số (l, r) sao cho 1 ≤ l ≤ r ≤ n và cl cl+1 . . . cr là xâu
ký tự không thể gấp đôi.

Dữ liệu
Gồm một dòng duy nhất chứa xâu ký tự C. Xâu này chỉ chứa các chữ cái in thường và có độ dài từ 1
đến 6 · 106 .

Kết quả
Ghi ra một số nguyên duy nhất là số cặp chỉ số (l, r) tìm được.

Ví dụ
stdin stdout
hueict 21
challenge 23

Subtask

• Subtask 1 (20 điểm): C chứa không quá 1 · 101 ký tự.

• Subtask 2 (18 điểm): C chứa không quá 2 · 102 ký tự.

• Subtask 3 (18 điểm): C chứa không quá 3 · 103 ký tự.

• Subtask 4 (16 điểm): C chứa không quá 4 · 104 ký tự.

• Subtask 5 (14 điểm): C chứa không quá 5 · 105 ký tự.

• Subtask 6 (14 điểm): C chứa không quá 6 · 106 ký tự.

HUE-ICTC 2024 – PRO CHALLENGE Trang 2 trên 9


Bài 2. Chuỗi con đối xứng — SUBPAL

Xâu ký tự S = s1 s2 . . . sn được gọi là xâu đối xứng khi và chỉ khi si = sn−i+1 với mọi chỉ số i thoả mãn
1 ≤ i ≤ n. Ví dụ, madam và madamimadam là các xâu đối xứng, nhưng im và adam thì không.

Một chuỗi con của xâu ký tự A = a1 a2 . . . an được biểu diễn bởi một bộ chỉ số (i1 , i2 , . . . , ik ) thoả mãn
0 < i1 < i2 < . . . < ik < n + 1. Chuỗi con này được gọi là chuỗi con đối xứng khi và chỉ khi xâu ký tự
ai1 ai2 . . . aik là xâu đối xứng. Chuỗi con này được gọi là chứa vị trí t khi và chỉ khi tồn tại chỉ số j sao
cho 1 ≤ j ≤ k và ij = t.

Cho xâu ký tự C = c1 c2 . . . cn , với mỗi vị trí t thoả mãn 1 ≤ t ≤ n, hãy đếm số chuỗi con đối xứng của
C chứa vị trí t.

Dữ liệu
Gồm một dòng duy nhất chứa xâu ký tự C. Xâu này chỉ chứa các chữ cái in thường và có độ dài từ 1
đến 4000.

Kết quả
In ra một dòng duy nhất chứa n số nguyên, trong đó số nguyên thứ t là phần dư của số chuỗi con đối
xứng của C chứa vị trí t khi chia cho 998244353.

Ví dụ
stdin stdout
abba 5 4 4 5

Giải thích
Trong ví dụ trên, các chuỗi con đối xứng của C được biểu diễn bởi các bộ chỉ số (1), (2), (3), (4), (1, 4),
(2, 3), (1, 2, 4), (1, 3, 4), (1, 2, 3, 4).

Subtask

• Subtask 1 (28 điểm): C chứa không quá 20 ký tự.

• Subtask 2 (26 điểm): C chứa không quá 50 ký tự.

• Subtask 3 (24 điểm): C chứa không quá 300 ký tự.

• Subtask 4 (22 điểm): C chứa không quá 4000 ký tự.

HUE-ICTC 2024 – PRO CHALLENGE Trang 3 trên 9


Bài 3. Pháp thuật — MAGIC

Tại một vùng đất bí ẩn nọ, nơi có rất nhiều những sinh vật lạ. Để đơn giản, có thể coi vùng đất là một
dãy 109 ô đất được đánh số lần lượt từ 1 đến 109 . Mỗi sinh vật sống trên chính xác một ô đất, và mỗi ô
đất chỉ chứa tối đa một sinh vật.
Có tổng cộng n sinh vật α và m sinh vật β sống trên vùng đất đó. Chúng là những sinh vật gây hại đồng
thời là thiên địch của nhau trong tự nhiên. Mỗi cá thể (bao gồm cả sinh vật α và sinh vật β) đều có một
chỉ số sức mạnh riêng biệt.
Hôm nay, một chàng phù thuỷ thông minh sẽ đến vùng đất này để khai phá một số mảnh đất để dành
cho các mục đích nghiên cứu khác nhau. Vị phù thuỷ nhận được từ trưởng làng q giấy phép, giấy phép
thứ i cho phép phù thuỷ tuỳ ý sử dụng mảnh đất từ ℓi đến ri . Tuy nhiên vị phù thuỷ chỉ được sử dụng
một giấy phép duy nhất và không phải mảnh đất nào cũng có thể sử dụng được, các mảnh đất phải được
qua cải tạo của chính vị phù thuỷ. Vì thế anh ta sẽ phải cân nhắc nên sử dụng giấy phép nào.
Việc cải tạo của chàng đại phù thuỷ gồm các bước như sau (xem phần giải thích để hiểu rõ hơn):

• Đặt hàng rào phép ngăn chặn mảnh đất gồm các ô đất từ ℓi đến ri với vùng đất bên ngoài, không
sinh vật nào có thể vượt qua rào phép.

• Chia mảnh đất thành nhiều mảnh đất con bằng cách đặt một số lượng tuỳ ý các hàng rào phép
giữa các ô đất để chia thành các mảnh đất con gồm nhiều ô đất liên tiếp sao cho mỗi mảnh đất
con có chứa ít nhất một sinh vật α hoặc sinh vật β.

• Phát động phép thuật khiêu khích khiến cho các sinh vật trong các mảnh đất con tấn công kết liễu
lẫn nhau. Những sinh vật cùng loại sẽ không tấn công nhau. Khi hai sinh vật A và B với chỉ số sức
mạnh tương ứng là a và b tấn công nhau, không mất tính tổng quát giả sử a ≥ b, thì sinh vật B sẽ
giảm chỉ số sức mạnh xuống 0 và sinh vật A giảm chỉ số sức mạnh xuống còn a − b, sau một trận
chiến bất kỳ giữa hai sinh vật, sinh vật nào có chỉ số bằng 0 sẽ tan biến, khi cả hai có chỉ số cùng
bằng 0 thì cả hai sẽ cùng tan biến. Để đơn giản, ban đầu sinh vật β bên trái cùng (gần ô đất 1
nhất) sẽ bay đến tấn công sinh vật α bên trái cùng (gần ô đất 1 nhất). Sinh vật nào không bị tan
biến, nếu có, sẽ đứng tại vị trí cuộc chiến xảy ra, sau đó cuộc chiến tiếp theo sẽ xảy ra theo quy
luật tương tự cho đến khi không còn sinh vật α nào hoặc không còn sinh vật β nào trên mảnh đất
đó cả.

• Cuối cùng độ hài lòng của vị phù thuỷ là số lượng mảnh đất con không còn sinh vật nào sống sót.

Bạn là phù thuỷ tập sự của vị phù thuỷ vĩ đại kia. Bạn hãy giúp anh ta trả lời với mỗi giấy phép thì độ
hài lòng tối đa của phù thuỷ sẽ là bao nhiêu.

Dữ liệu

• Dòng đầu tiên chứa ba số nguyên n, m, q lần lượt là số lượng sinh vật α, số lượng sinh vật β và số
lượng giấy phép (1 ≤ n, m, q ≤ 2 · 105 ).

• n dòng tiếp theo mỗi dòng chứa hai số x và s mô tả một sinh vật α ở ô đất thứ x với chỉ số sức
mạnh s (1 ≤ x, s ≤ 109 ).

• m dòng tiếp theo mỗi dòng chứa hai số x và s mô tả một sinh vật β ở ô đất thứ x với chỉ số sức
mạnh s (1 ≤ x, s ≤ 109 ).

• q dòng tiếp theo mỗi dòng chứa hai số ℓ, r mô tả một giấy phép (1 ≤ ℓi ≤ ri ≤ 109 ).

Hai số nguyên trên một dòng cách nhau bởi dấu cách. Dữ liệu đảm bảo không có hai sinh vật nào ở cùng
một ô đất. Và với mọi giấy phép, mảnh đất tương ứng chứa ít nhất một sinh vật.

HUE-ICTC 2024 – PRO CHALLENGE Trang 4 trên 9


Kết quả
In ra q dòng lần lượt là độ hài lòng tối đa với mỗi giấy phép, theo thứ tự xuất hiện trong dữ liệu vào.

Ví dụ
stdin stdout
3 3 4 1
2 4 1
1 3 2
9 2 0
4 4
5 1
7 2
2 4
1 8
1 10
3 6

Giải thích
Có n = 3 sinh vật α và m = 3 sinh vật β. Trạng thái của các ô đất từ 1 đến 10 như sau:

1 2 3 4 5 6 7 8 9 10
3 4 4 1 2 2

Trong đó màu xanh mô tả sinh vật α và màu đỏ cho sinh vật β.

• Với giấy phép đầu tiên, phù thủy được dùng các ô đất được đánh số từ ℓ = 2 đến r = 4:

2 3 4
4 4

Trong trường hợp này, để tối ưu, phù thủy không đặt thêm hàng rào nào (coi như chia thành một
mảnh đất con). Khi phát động tấn công, sinh vật β ở ô đất 4 sẽ bay đến tấn công sinh vật α ở ô
đất 2. Do sinh vật β và sinh vật α có sức mạnh bằng nhau nên cả hai sẽ cùng tan biến. Không còn
sinh vật α hoặc sinh vật β nào nữa nên cuộc chiến kết thúc. Độ hài lòng của phù thủy là 1 do có 1
mảnh đất con không còn sinh vật nào sống sót.

• Với giấy phép thứ hai, phù thủy được dùng các ô đất được đánh số từ ℓ = 1 đến r = 8:

1 2 3 4 5 6 7 8
3 4 4 1 2

Tương tự giấy phép đầu tiên phù thủy chọn không đặt thêm hàng rào. Trạng thái mảnh đất sau
các cuộc tấn công như sau:

1 2 3 4 5 6 7 8
3 4 4 1 2
1 4 1 2
3 1 2
2 2

Độ hài lòng tối đa của phù thủy là 1.

HUE-ICTC 2024 – PRO CHALLENGE Trang 5 trên 9


• Với giấy phép thứ ba, phù thủy được dùng các ô đất được đánh số từ ℓ = 1 đến r = 10:

1 2 3 4 5 6 7 8 9 10
3 4 4 1 2 2

Phù thủy chọn chia thành 4 mảnh đất con [1, 1], [2, 4], [5, 6], [7, 10]. Sau khi các cuộc tấn công kết
thúc, mảnh đất [2, 4] và [7, 10] không còn sinh vật nào. Độ hài lòng của phù thủy là 2.

• Với giấy phép cuối cùng phù thủy được dùng các ô đất được đánh số từ ℓ = 3 đến r = 6:

3 4 5 6
4 1

Có thể thấy không tồn tại cách chia nào mà độ hài lòng của phù thủy lớn hơn 0.

Subtask

• Subtask 1 (28 điểm): n, m ≤ 10, q = 1, ℓ = 1, r = 109

• Subtask 2 (26 điểm): n, m, q ≤ 300

• Subtask 3 (22 điểm): n, m, q ≤ 3000

• Subtask 4 (16 điểm): s = 1 với mọi sinh vật

• Subtask 5 (8 điểm): Không có ràng buộc gì thêm

HUE-ICTC 2024 – PRO CHALLENGE Trang 6 trên 9


Bài 4. Đổi quà — GIFT

Có một lớp học gồm n học sinh, để đơn giản ta đánh số các bạn từ 1 đến n. Một hôm nọ, thầy giáo chủ
nhiệm tổ chức cho các bạn học sinh chơi đổi quà với nhau. Mỗi bạn sẽ chuẩn bị đúng một món quà và
xếp nó thành một hàng ngang. Sau đó thầy giáo sẽ xáo trộn vị trí các món quà với nhau và phát cho
từng bạn sao cho mỗi bạn nhận lại đúng một món quà.
Trong lớp có m cặp bạn thân. Vì lớp rất đoàn kết nên mỗi bạn đều có ít nhất một bạn thân và mọi người
đều coi nhau là bạn. Ở đây ta định nghĩa bạn là quan hệ quen biết nhau thông qua một hoặc nhiều quan
hệ bạn thân. Cụ thể x là bạn của y nếu tồn tại một dãy x, a1 , a2 , . . . , ak , y (k ≥ 0) sao cho x là bạn thân
của a1 , ai là bạn thân của ai+1 với mọi 1 ≤ i < k và ak là bạn thân của y. Lưu ý rằng bạn thân cũng có
thể coi là bạn.
Sau khi đổi quà xong, các bạn học sinh sẽ cảm thấy hài lòng nếu nhận được món quà của một người bạn
thân của mình hoặc món quà của chính mình (do các bạn vẫn chưa đủ tin tưởng khi giao món quà của
mình cho người không phải là bạn thân).
Yêu cầu: Hãy giúp thầy giáo đếm xem có bao nhiêu cách phát quà cho các bạn học sinh sao cho tất cả
các bạn đều hài lòng. Hai cách được xem là khác nhau nếu tồn tại một học sinh x sao cho x nhận được
quà từ hai bạn khác nhau ở hai cách. Do kết quả có thể rất lớn, bạn chỉ cần in ra phần dư khi chia cho
109 + 7.

Dữ liệu

• Dòng đầu tiên chứa số nguyên dương n, m lần lượt là số bạn học sinh và số cặp bạn thân trong
lớp. (3 ≤ n ≤ 2 · 105 , n − 1 ≤ m ≤ n)

• Dòng thứ i trong m dòng tiếp theo chứa hai số nguyên ai , bi mô tả cặp bạn thân thứ i (1 ≤ ai , bi ≤ n,
ai ̸= bi )

Hai số nguyên liên tiếp trên cùng một dòng cách nhau bởi dấu cách. Dữ liệu đảm bảo các cặp bạn thân
không lặp lại.

Kết quả
In ra một số nguyên duy nhất là kết quả bài toán.

Ví dụ
stdin stdout
4 3 4
1 2
2 3
2 4
3 3 6
1 2
2 3
3 1

Lưu ý
Ở ví dụ thứ nhất, có 4 cách thỏa mãn như sau:

• Tất cả các bạn nhận lại quà của chính mình.

HUE-ICTC 2024 – PRO CHALLENGE Trang 7 trên 9


• Bạn 1 nhận quà của bạn 2, bạn 2 nhận quà của bạn 1 và các bạn còn lại nhận quà của chính mình.

• Bạn 2 nhận quà của bạn 3, bạn 3 nhận quà của bạn 2 và các bạn còn lại nhận quà của chính mình.

• Bạn 2 nhận quà của bạn 4, bạn 4 nhận quà của bạn 4 và các bạn còn lại nhận quà của chính mình.

Ở ví dụ thứ hai, có 6 cách thỏa mãn như sau:

• Tất cả các bạn nhận lại quà của chính mình.

• Bạn 1 nhận quà của bạn 2, bạn 2 nhận quà của bạn 1 và bạn còn lại nhận quà của chính mình.

• Bạn 2 nhận quà của bạn 3, bạn 3 nhận quà của bạn 2 và bạn còn lại nhận quà của chính mình.

• Bạn 3 nhận quà của bạn 1, bạn 1 nhận quà của bạn 3 và bạn còn lại nhận quà của chính mình.

• Bạn 1 nhận quà của bạn 2, bạn 2 nhận quà của bạn 3 và bạn 3 nhận quà của bạn 1.

• Bạn 1 nhận quà của bạn 3, bạn 2 nhận quà của bạn 1 và bạn 3 nhận quà của bạn 2.

Subtask

• Subtask 1 (30 điểm): n ≤ 10

• Subtask 2 (30 điểm): m = n − 1

• Subtask 3 (20 điểm): m = n, ai = i, bi = i + 1 với mọi 1 ≤ i < m, am = n, bm = 1.

• Subtask 4 (20 điểm): Không có ràng buộc gì thêm.

HUE-ICTC 2024 – PRO CHALLENGE Trang 8 trên 9


Bài 5. Mật mã online — ONCODE

Để quản lý tính bảo mật cho website tổ chức kỳ thi lập trình Hue-ICTC 2024, Ban tổ chức dự định sẽ
liên tục giám sát hệ số đa dạng của hệ thống.

Hệ số đa dạng là chỉ số nhằm đo lường mức độ đa dạng của các xâu mật khẩu được lưu trữ trên hệ
thống, được tính bằng số lượng mật khẩu khác nhau tối đa mà hệ thống có thể lưu trữ. Mỗi mật khẩu
đều có dạng một xâu nhị phân N ký tự, ngoài ra để đảm bảo yêu cầu bảo mật, dãy mật khẩu phải thoả
mãn các điều kiện sau:

• Không có đoạn con liên tiếp A + 1 ký tự nào toàn bit 0.

• Không có đoạn con liên tiếp B + 1 ký tự nào toàn bit 1.

• Số đoạn con liên tiếp 2 ký tự có dạng 01 hoặc 10 tồn tại nhiều nhất L lần.

Hãy xác định hệ số đa dạng của hệ thống.

Dữ liệu

• Dòng duy nhất của dữ liệu vào chứa bốn số nguyên không âm N, A, B, L như mô tả đề bài.

Kết quả

• In ra hệ số đa dạng của hệ thống theo modulo 109 + 7.

Ví dụ
stdin stdout
6 2 3 2 8

Giải thích
8 xâu thoả mãn là 001100, 001110, 011100, 100111, 110011, 110111, 111001, 111011.

Subtask

• Subtask 1 (8 điểm). N ≤ 10

• Subtask 2 (18 điểm). N ≤ 103

• Subtask 3 (18 điểm). N ≤ 106

• Subtask 4 (28 điểm). N ≤ 1012 , A = B

• Subtask 5 (28 điểm). N ≤ 1012

Ngoài ra trong tất cả các test:

• 0 ≤ L ≤ min{N, 100}

• 1 ≤ A, B ≤ N

HUE-ICTC 2024 – PRO CHALLENGE Trang 9 trên 9

You might also like