| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| A | Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #2 - Chia kẹo cho em | 100 (p) | 0.5s | 256M |
| B | Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #2 - Quản lý năng lượng thành phố | 100 (p) | 0.5s | 256M |
| C | Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #2 - Tiền tố đối xứng dài nhất | 100 (p) | 0.5s | 256M |
| D | Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #2 - Dãy số Teto | 100 (p) | 2.0s | 256M |
Một hôm, thấy túi kẹo còn quá nhiều và cậu ấy rất ghét ăn kẹo. Nhưng, rất thích ăn loại kẹo đó. Tuy nhiên, không muốn tặng kẹo cho cậu ấy quá nhiều. Chính vì vậy, cậu ấy đã nghĩ ra một cách chia đơn giản như sau: Trong túi kẹo, còn \(n\) túi kẹo với độ ngọt lần lượt là: \(w_1,w_2,...,w_n\) (Lưu ý: Độ ngọt không được sắp xếp hay theo một quy luật hay thứ tự nào cả)
tặng kẹo hay ăn kẹo cho đến khi không còn cách chia nào thỏa mãn.
Nhiệm vụ của các bạn là hãy giúp đếm số lượng viên mà anh ta tặng cho .
Test 1
7 10
1 2 3 7 8 9 10
6
Tại Thành phố Hồ Chí Minh, nơi phát triển kinh tế tốt nhất tại đất nước Việt Nam. Mỗi ngày, các coder phải tính toán như sau: Có \(N\) nhà máy điện đứng thẳng hàng, mỗi nhà máy \(i\) ban đầu sản xuất \(a_i\) megawatt (MW) điện. Chính quyền thành phố yêu cầu bạn xử lý \(q\) truy vấn thuộc \(3\) loại:
Vì dẫn các học sinh có tiềm năng đến nơi làm việc của các coder đó. Anh ta thử thách các học sinh tính toán bài toán trên. Để thể hiện điều đó, các bạn cần AC bài tập này để tuyển chọn vào Đội Tuyển Học Sinh Giỏi HGBCpp_.
Test 1
5 4
3 3 5 7 9
1 2 4 2
2 3 10
3 1 5
3 2 4
3
5
Ta có dãy công suất điện ban đầu là: 3 3 5 7 9.
Ta thực hiện các truy vấn như sau:
1 2 4 2 ta thay đổi dãy được 3 5 7 9 92 3 10 ta thay đổi dãy được 1 5 10 9 93 chính là giá trị nhỏ nhất trong toàn bộ từ dãy \([1;5]\)5 chính là giá trị nhỏ nhất trong toàn bộ từ dãy \([2;4]\)Sau ngày đầu tiên của với chuyến đi thích thú. Vào đêm, anh ấy nhìn thấy biển báo nhắc nhở trong khách sạn và nhận thấy điều đặc biệt và viết nên bài toán như sau: Cho hai xâu ký tự \(S\) và \(T\) có cùng độ dài \(N\) chỉ gồm các chữ cái latin tiếng Anh viết thường. Với mỗi vị trí \(i\) (\(1 \le i \le N\)), gọi \(P(S, i)\) là tiền tố độ dài \(i\) của xâu \(S\). Hãy tìm giá trị \(L\) lớn nhất sao cho:
Nói cách khác, bạn cần tìm số \(L\) lớn nhất sao cho tồn tại ít nhất một chỉ số \(j\) (\(1 \le j \le N - L + 1\)) thỏa mãn: \(S[1 \dots L]\) đảo ngược bằng với \(T[j \dots j+L-1]\).
0.Test 1
7
abacaba
baabcde
2
baabcde) có xâu con nào dài \(3\) bằng aba không: Không có (các xâu con độ dài 3 của \(T\) là baa, aab, abc, bcd, cde). Do đó \(L = 3\) không thỏa mãn.ab.ba.baabcde):Test 2
5
abcde
edcba
5
Trong một ngày đêm u ám, bị bắt cóc vào khu tự trị nơi tồn tại khu lừa đảo lớn nhất Cam-pu-chia. Sếp bắt cóc anh ta vì thấy anh ấy có tiềm năng để lừa người nên mới bắt .
Bổng dưng, sếp hỏi anh ấy đúng một câu:
Tôi cho bạn một trong 2 lựa chọn: Một là giải bài toán hóc búa này để được thả tự do vì chính sếp cũng chả biết giải (._.). Hai là sẽ giữ lại để làm việc cho hắn và sẽ cho ăn quả chích điện nếu không lừa được \(100\) người mỗi ngày.
Vì không muốn lừa chính người dân của mình nên chọn phương án số \(1\), vì bài toán dưới đây quá khó, mà không AC thì đẩy sang phương án số \(2\) nên đành nhanh trí nhờ sự trợ giúp bên ngoài. Các bạn hãy mau nhanh chóng giúp cậu ấy thoát khỏi ổ lừa đảo nhất quả đất Cam-pu-chia nhé!
Một dãy số (\(x_1,x_2,\ldots,x_m\)) được gọi là Teto nếu với mọi (\(1 \le i \le m-2\)): \(x_i \oplus x_{i+1} < x_{i+1} \oplus x_{i+2}\)
trong đó (\(\oplus\)) là phép \(\text{XOR bit}\).
Mọi dãy có độ dài \(1\) hoặc \(2\) đều là dãy Teto. Cho \(n\) đoạn \([l,r]\) (có thể trùng nhau).
Gọi \(P\) là tập hợp tất cả các số nguyên xuất hiện trong ít nhất một đoạn. Tạo dãy \(A\) gồm các phần tử của \(P\), sắp xếp tăng dần.
Cần đếm số lượng dãy con không rỗng của \(A\) là dãy Teto.
Kết quả lấy \(\text{mod}\) \(998244353\)
Sau đó có \(q\) thao tác động:
1 l r: thêm đoạn \([l,r]\).2 l r: xóa một lần xuất hiện của đoạn \([l,r]\).Sau trạng thái ban đầu và sau mỗi truy vấn, phải in ra số dãy con Teto hiện tại.
Test 1
2 4
6 7
10 10
1 6 7
2 6 7
1 9 9
2 6 7
7
7
7
12
3
1 6 7, ta thêm đoạn \([6, 7]\) vào \(S\). Khi đó \(S = \{[6, 7], [6, 7], [10, 10]\}\), nhưng \(P\) vẫn là \(\{6, 7, 10\}\), nên \(A\) không đổi. Vì vậy, đáp án vẫn là \(7\).2 6 7, ta xóa một đoạn \([6, 7]\) khỏi \(S\). Vì trong \(S\) vẫn còn đoạn \([6, 7]\), nên \(P\) và \(A\) vẫn không đổi. Vì vậy, đáp án vẫn là \(7\).1 9 9, ta thêm đoạn \([9, 9]\) vào \(S\). Khi đó \(P = \{6, 7, 9, 10\}\) và \(A = [6, 7, 9, 10]\).2 6 7, đoạn \([6, 7]\) còn lại bị xóa khỏi \(S\). Khi đó \(P = \{9, 10\}\) và \(A = [9, 10]\). Có đúng \(3\) dãy con Teto là \([9]\), \([10]\), và \([9, 10]\).Test 2
3 3
10 12
15 15
100 101
1 12 13
1 14 14
2 10 12
39
60
84
39