| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | NUMLCS (Chọn ĐT' Đà Nẵng 22-23) | 6 (p) | 1.0s | 256M |
| 2 | RECUR (Chọn ĐT' Đà Nẵng 22-23) | 7 (p) | 2.0s | 1G |
| 3 | LIGHT (Chọn ĐT' Đà Nẵng 22-23) | 7 (p) | 1.0s | 256M |
Bài toán dãy con chung dài nhất (LCS) là một bài toán nổi tiếng trong khoa học máy tính. Mọi sinh viên khoa học máy tính ở LQDOJ đều biết bài toán này. FOS cũng vậy.
Nhớ lại rằng một dãy con của một xâu \(S\) có được bằng cách xóa một số ký tự khỏi \(S\). Cho hai xâu \(S\) và \(T\), bài toán LCS là tìm xâu dài nhất là xâu con của cả \(S\) và \(T\).
FOS thích việc tìm ra những vấn đề khó hơn từ một vấn đề quen thuộc. Lần này, dựa trên vấn đề LCS, anh ấy đã nghĩ ra vấn đề sau:
Cho hai xâu \(S\) và \(T\), có bao nhiêu LCS phân biệt của \(S\) và \(T\)?. Viết một chương trình để giúp FOS giải quyết vấn đề này. Vì kết quả có thể rất lớn, bạn chỉ cần in phần còn lại của kết quả khi chia cho \(20030101\).
Test 1
2
acbd
acbd
fosfos
fos
4 1
3 1
Nguồn: Bài 1 ngày 1 đề chọn ĐT HSG QG TP.ĐN 2022-2023
Cho một hoán vị \(p_1, p_2, \ldots, p_n\). Bạn cần trả lời \(q\) truy vấn. Truy vấn thứ \(i\) là một cặp số nguyên \((l_i, r_i)\), bạn cần tính \(f(l_i, r_i)\).
Gọi \(m_{l,r}\) là vị trí của phần tử lớn nhất trong đoạn \(p_l, p_{l+1}, \ldots, p_r\).
nếu \(l \le r\) và bằng \(0\) trong trường hợp ngược lại.
Test 1
4 5
3 1 4 2
2 1 1 2 1
2 3 4 4 1
1 6 8 5 1
Nguồn: Bài 2 ngày 1 đề chọn ĐT HSG QG TP.ĐN 2022-2023
Có \(n\) bóng đèn trên một đường thẳng, được đánh số từ \(1\) đến \(n\). Mỗi bóng đèn có trạng thái ban đầu là tắt \((0)\) hoặc mở \((1)\).
Bạn đã cho \(k\) tập con \(A_1, \ldots, A_k\) là tập con của tập \(\{1, 2, \ldots, n\}\), sao cho giao của ba tập hợp con bất kỳ là trống. Nói cách khác, với mọi \(1 \leq i_1 < i_2 < i_3 \leq k\) thì \(A_{i_1} \cap A_{i_2} \cap A_{i_3} = \emptyset\).
Trong một thao tác, bạn có thể chọn một trong số \(k\) tập hợp con và chuyển đổi trạng thái của tất cả các đèn trong đó. Đảm bảo rằng, với các tập hợp con đã cho, có thể làm cho tất cả các bóng đèn được bật đồng thời bằng các hoạt động này.
Gọi \(m_i\) là số thao tác tối thiểu bạn phải làm để \(i\) đèn đầu tiên được bật đồng thời. Lưu ý rằng không có điều kiện đối với trạng thái của các đèn khác (từ \(i + 1\) đến \(n\)), chúng có thể tắt hoặc mở.
Bạn phải tính toán \(m_i\) cho tất cả \(1 \leq i \leq n\).
Test 1
7 3
0011100
3
1 4 6
3
3 4 7
2
2 3
1
2
3
3
3
3
3
Test 2
8 6
00110011
3
1 3 8
5
1 2 5 6 7
2
6 8
2
3 5
2
4 7
1
2
1
1
1
1
1
1
4
4
Test 3
5 3
00011
3
1 2 3
1
4
3
3 4 5
1
1
1
1
1
Test 4
19 5
1001001001100000110
2
2 3
2
5 6
2
8 9
5
12 13 14 15 16
1
19
0
1
1
1
2
2
2
3
3
3
3
4
4
4
4
4
4
4
5
Nguồn: Bài 3 ngày 1 đề chọn ĐT HSG QG TP.ĐN 2022-2023