| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | CSES - String Matching | Khớp xâu | 100 (p) | 1.0s | 512M |
| 2 | Xâu con lặp | 100 (p) | 2.0s | 512M |
| 3 | Xử lý xâu | 100 (p) | 1.0s | 256M |
| 4 | Quảng Cáo | 150 (p) | 1.0s | 256M |
| 5 | Hai thao tác trên chuỗi | 250 (p) | 1.0s | 256M |
Cho một xâu và một từ khóa, nhiệm vụ của bạn là đếm số lượng vị trí mà từ khóa xuất hiện trong xâu.
a - z.Test 1
saippuakauppias
pp
2
Cho xâu \(S\) độ dài \(N\), hãy lập trình xác định độ dài lớn nhất có thể của một xâu con xuất hiện từ hai lần trở lên trong \(S\) (hai lần xuất hiện này không được giao nhau). Nói cách khác, tìm số nguyên \(l\) lớn nhất sao cho tồn tại hai số chỉ số \(i_1\) và \(i_2\) thỏa mãn:
Nếu không tồn tại số nguyên dương \(l\) thỏa mãn thì in ra \(0\).
In ra độ dài lớn nhất tìm được.
Test 1
5
ababa
2
Test 2
2
xy
0
Test 3
13
trangeorange
5
Bờm là một học sinh chuyên tin. Hôm nay Bờm được thầy dạy về thứ tự từ điển và các bài toán liên quan. Sau một hồi giảng giải và định nghĩa thứ tự từ điển là gì, thầy lấy ngay một ví dụ cho lớp. Thầy viết lên bảng 2 chuỗi kí tự dài ơi là dài, và hỏi cả lớp "Chuỗi thứ nhất có thứ tự từ điển như thế nào đối với chuỗi thứ hai: đứng trước (<), đứng sau (>) hay bằng nhau (=) ???".
Cả lớp thì đang hoang mang, vì cũng chẳng có ai hiểu được định nghĩa "Thứ tự từ điển là gì?" của thầy, nói gì đến việc giải bài tập. Nhưng Bờm thì ngược lại, do đã chuẩn bị và xem bài trước ở nhà nên đã trả lời ngay được câu hỏi của thầy sau khi thấy vừa dứt lời. Bờm ngồi chơi trong lúc mọi người đang thảo luận xôn xao, nên đã tạo thêm một số ví dụ nữa về thứ tự từ điển để có thể hiểu sâu thêm về bài học. Nhìn ngay lên bảng, Bờm phát hiện từ 2 xâu trong ví dụ của thầy, Bờm có thể tự sinh ra rất nhiều ví dụ khác. Cụ thể hơn, Bờm chọn một xâu con trong xâu thứ nhất và một xâu con trong xâu thứ hai, thế là có ngay một cặp xâu để mà so sánh. Xâu con ở đây được hiểu là một dãy các ký tự liên tiếp.
Thế là Bờm liên tục sinh ra các ví dụ và trả lời chúng. Bờm càng làm càng nhạy, và trả lời các câu hỏi về thứ tự từ điển càng nhanh. Đến nỗi trong 1 giây Bờm đã có thể trả lời đến tất cả là \(10^6\) câu hỏi!
Yêu cầu: Cho 2 xâu kí tự \(A\) và \(B\) (chỉ gồm các kí tự từ a đến z) và một danh sách gồm \(Q\) câu hỏi có dạng (\(l, r, u, v\)), với ý nghĩa cần so sánh thứ tự từ điển của xâu con \(A[l…r]\) và \(B[u…v]\) (các kí tự của một xâu được đánh số từ trái qua phải, bắt đầu bằng 1; và ký hiệu \(A[l…r]\) thể hiện xâu con từ kí tự thứ \(l\) đến \(r\) của xâu A).
Bạn hãy viết một chương trình mô tả lại hoạt động trả lời các câu hỏi của Bờm.
Lưu ý
Xâu \(a_1a_2…a_n\) (\(a+i\) là kí tự thứ \(i\) trong xâu \(a\)) có thứ tự từ điển nhỏ hơn xâu \(b_1b_2…b_m\) nếu:
=, > hoặc <. Tất cả các câu trả lời được viết trên một dòng.Test 1
13 14
bomthichdacau
bomthichdabanh
3
1 10 1 10
1 10 1 11
1 11 1 11
=<>
Để quảng bá cho cuộc thi chạy của Hippo Runners Club, các thành viên ban quản trị đã rất đau đầu để suy nghĩ ra một cái tên thực sự đáng chú ý. Sau nhiều tháng tranh luận, mọi người đã đi đến thống nhất các quy tắc sau:
Ví dụ: Với A = “abc”, B = “cde”, k = 3. Những tên sau được xem là hợp lệ: “abcxyzcde”, “abcde”, … và những tên sau là không hợp lệ “abxcde”, “abczzzzcde”, “thoi bay covid 123”, …
Cho trước một xâu \(S\), hãy tìm xem liệu có tồn tại xâu con \(X\) của \(S\) (các kí tự liên tiếp) mà \(X\) là một cái tên hợp lệ hay không.
Test 1
3
7
thoibaycovid
thoi
covid
9
abcde
abc
cde
1
abcccd
abc
d
YES
YES
NO
John có một chuỗi \(S\). John được yêu cầu thực hiện hai thao tác sau theo thứ tự trên \(S\):
John muốn sau khi thực hiện hai phép toán trên, kết quả thu được là một chuỗi cho trước. Bạn hãy giúp John tính số cách biến đổi từ chuỗi \(S\) thành một chuỗi \(T\) cho trước.
Test 1
AHYANGYI YANGYIAH
8
Test 2
VSUMSU MSUMSU
2