LQDOJ Cup 2025 - Round #1 - Nhà máy nước cam
Xem PDFTrong một thế giới song song, Thầy Nhỏ đang trên con đường xây dựng Lê-Quý-Đôn Orange-Juice trở thành Nhà máy sản xuất Nước cam lớn nhất Việt Nam. Hùng là một nhà mật mã học tài ba nhưng làm trái ngành, và vô tình nằm trong đội ngũ truyền thông của công ty. Hôm nay, Hùng đề xuất một chiến dịch đố vui có thưởng.
Hùng quyết định lấy công thức món Mocktail yêu thích chưa kịp đặt tên ("chưa" là tên tạm thời) trong quầy bar thử nghiệm của Nhỏ's Coffee (một trong những chuỗi quán đồ uống không chứa caffeine lớn nhất Việt Nam) làm cảm hứng. Được biết, món này cần chuẩn bị \(n\) nguyên liệu có tên được mã hóa là \(P_1, P_2, \dots, P_n\); và để pha được một ly ``chưa'' đúng chuẩn thì phải thực hiện tuần tự \(m\) bước: \(i_1, i_2, \dots, i_m\)~-- chính là thứ tự đưa nguyên liệu vào ly mocktail này.
Trò chơi rất đơn giản: mọi người sẽ cùng nhau đoán mật mã \(T\) được ghép từ các xâu \(P_{i_1}, P_{i_2}, \dots, P_{i_m}\)~-- chính là công thức món mới. Trong quá trình chơi, giả sử người chơi đoán đáp án là \(G\) và đáp án sai, hệ thống sẽ thông báo số ký tự đúng và số ký tự sai; số ký tự đúng được tính bằng độ dài của xâu con chung dài nhất giữa \(G\) và \(T\), số ký tự sai bằng độ dài của \(G\) trừ cho số ký tự đúng.
Công ty chấp thuận ý tưởng này, và đưa kế hoạch xuống các phòng ban liên quan, trong đó có phòng Kỹ thuật. Bạn là lập trình viên tài ba nhất của phòng Kỹ thuật, và được giao nhiệm vụ đếm số ký tự đúng. Đội Kiểm tra chất lượng (Quality Assurance) của phòng đã chuẩn bị sẵn \(q\) trường hợp đầu vào kiểm thử là các xâu kí tự \(S_1, S_2, \ldots, S_q\). Với mỗi xâu \(S_i\), bạn cần tính độ dài của xâu con chung dài nhất giữa \(S_i\) và \(T\).
Nhắc lại, xâu ký tự \(A = \alpha_1 \alpha_2 \ldots \alpha_{\sigma}\) được gọi là xâu con của xâu ký tự \(B = \beta_1 \beta_2 \ldots \beta_{\tau}\) khi và chỉ khi tồn tại dãy chỉ số \(\iota_1, \iota_2, \ldots, \iota_{\sigma}\) thỏa mãn \(1 \leq \iota_1 < \iota_2 < \ldots < \iota_{\sigma} \leq \tau\) và \(\alpha_{\kappa} = \beta_{\iota_{\kappa}}\) với mọi \(1 \leq {\kappa} \leq \sigma\). Xâu rỗng được coi là xâu con của mọi xâu ký tự. Ví dụ: ac, abc, <xâu rỗng> là xâu con của abc; nhưng cb hay ad thì không.
Input
- Dòng đầu tiên chứa ba số \(n\), \(m\) và \(q\) \((1 \leq n \leq 10^5, 1 \leq m \leq 2 \cdot 10^5, 1 \leq q \leq 75000)\).
- Dòng thứ hai chứa \(n\) xâu \(P_1, P_2, \ldots, P_n\); các xâu đều không rỗng, chỉ gồm các ký tự latin thường, và có tổng độ dài không quá \(10^6\).
- Dòng thứ ba chứa \(m\) số nguyên \(i_1, i_2, \ldots, i_m\) \((1 \leq i_j \leq n)\).
- Trong \(q\) dòng cuối cùng, dòng thứ \(i\) chứa một xâu \(S_i\) chỉ gồm các ký tự latin thường có độ dài không quá \(3000\). Tổng độ dài \(q\) xâu này không quá \(75000\).
Output
In ra \(q\) dòng, dòng thứ \(i\) chứa số ký tự đúng giữa xâu \(S_i\) và \(T\).
Scoring
- Subtask \(1\) (\(19\) điểm): Các xâu \(P_1, P_2, \ldots, P_n\) có \(1\) ký tự và \(m \leq 2000\).
- Subtask \(2\) (\(23\) điểm): Các xâu \(P_1, P_2, \ldots, P_n\) có không quá \(10\) ký tự.
- Subtask \(3\) (\(29\) điểm): Các xâu \(S_1, S_2, \ldots, S_q\) có không quá \(300\) ký tự. Tổng độ dài các xâu này không quá \(7500\).
- Subtask \(4\) (\(29\) điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
5 2 5
doran oner faker gumayusi keria
5 2
kiin
canyon
chovy
ruler
duro
Output
3
3
1
3
2
Note
Trong ví dụ trên, \(T =\) keriaoner.
- Xâu con chung dài nhất giữa \(S_1 =\)
kiinvà \(T\) có độ dài \(3\), một trong số đó là làkin. - Xâu con chung dài nhất giữa \(S_2 =\)
canyonvà \(T\) có độ dài \(3\), một trong số đó là làaon. - Xâu con chung dài nhất giữa \(S_3 =\)
chovyvà \(T\) có độ dài \(1\), một trong số đó là lào. - Xâu con chung dài nhất giữa \(S_4 =\)
rulervà \(T\) có độ dài \(3\), một trong số đó là làrer. - Xâu con chung dài nhất giữa \(S_5 =\)
durovà \(T\) có độ dài \(2\), một trong số đó là làro.
Kỳ thi:
- LQDOJ Cup 2025 - Round #1 (27 Tháng 9., 2025)
Bình luận