| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | LQDOJ CUP 2022 - Round 4 - COMPRESS | 100 (p) | 3.0s | 512M |
| 2 | LQDOJ CUP 2022 - Round 4 - UGPALIND | 100 (p) | 2.0s | 1G |
| 3 | LQDOJ CUP 2022 - Round 4 - COWBOY | 100 (p) | 1.0s | 512M |
Quang được giao cho một việc, đó là lưu lại một hoán vị \(p\) của dãy số nguyên \((1,2,\ldots,n)\). Do cảm thấy việc này rất nhàm chán nên Quang đã nén hoán vị này theo một cách mà Quang tự nghĩ ra. Cách nén của Quang là chọn một số nguyên \(k\) và chỉ lưu lại tổng các đoạn con liên tiếp độ dài \(k\) của \(p\). Nói cách khác thì bây giờ Quang có một dãy số nguyên \(s = (s_{1}, s_{2}, \ldots, s_{n - k + 1})\), với
Quang nhanh chóng nhận ra là cách nén của anh ấy có gì đó không đúng. Cách nén trên bị một vấn đề là có thể có nhiều hoán vị có thể cùng được nén thành một dãy số. Do vậy Quang cần lưu thêm một số \(x\), có nghĩa là trong các hoán vị nén thành dãy \(s\), thì hoán vị \(p\) là hoán vị bé thứ \(x\) theo thứ tự từ điển. Do Quang có thể nhầm lẫn nên đôi khi không thể tìm thấy hoán vị thỏa mãn.
Bạn hãy giúp Quang viết một chương trình tìm hoán vị \(p\) thỏa mãn yêu cầu trên.
Test 1
2
5 3 1
6 10 11
5 3 2
6 10 11
1 3 2 5 4
-1
KhaiTCL và Theanhto là đôi bạn thân. Một ngày nọ, cả hai cùng học được tính chất khá là hay ho của một chuỗi đối xứng đó là khi đảo ngược lại tất cả các kí tự thì nó cũng tạo thành một chuỗi bằng với chuỗi ban đầu. Sau đó, KhaiTCL chọn một số nguyên \(k\) và đố Theanhto đếm được số lượng xâu đối xứng độ dài \(k\) chỉ gồm các ký tự Latinh in thường (a \(\rightarrow\) z).
Điều này quả thực quá dễ đối với Theanhto, cậu ấy đã tính toán rất nhanh chỉ trong vòng một nốt nhạc. Các bạn có thể nghĩ xem kết quả ở đây là gì? Tuy nhiên, để tăng độ khó cho việc tính toán, KhaiTCL lại sinh ra \(n\) xâu \(s_1,s_2,\ldots,s_n\) và mỗi xâu cũng chỉ gồm các ký tự Latinh in thường. Lúc này KhaiTCL muốn Theanhto tính xem có bao nhiêu xâu đối xứng mà ít nhất \(1\) trong \(n\) xâu \(s_1,s_2,\ldots,s_n\) này xuất hiện trong xâu đối xứng đó ít nhất \(1\) lần. KhaiTCL định nghĩa xâu \(a\) xuất hiện trong xâu \(b\) nếu tồn tại vị trí \(i \in [1,|b|-|a|+1]\) mà \(a_j = b_{i+j-1} \ \forall j \in [1,|a|]\), ở đây mỗi xâu có các kí tự được đánh chỉ số từ \(1\) từ trái qua phải và \(|t|\) là độ dài của xâu \(t\) nào đó.
Do KhaiTCL thấy hơi hụt hẫng khi Theanhto giải được bài tập đầu tiên quá nhanh nên cậu mới nghĩ ra bài toán thứ hai nhưng thật không may khi bài toán này chính cậu cũng không biết phải đếm như thế nào kể cả khi cậu có một cái máy tính trong tay để lập trình. Thông qua cuộc thi LQDOJ CUP, KhaiTCL quyết định tìm đến những lập trình viên giỏi nhất nhằm giúp KhaiTCL giải quyết bài toán trên.
Test 1
2 3
a
aa
51
aaa, ara, sas, ...Miền Tây hoang dã tại nước Mỹ xa xôi sắp diễn ra một cuộc thi đấu giữa những chàng cao bồi tài hoa. \(m\) chàng cao bồi phải đi tìm kiếm cho mình những chú ngựa cừ khôi như là một phần của cuộc thi.
Biết rằng mảnh đất viễn tây có thể biểu diễn dưới dạng toạ độ \(Oxy\). Cụ thể, bốn điểm \((x, y)\), \((x - 1, y)\), \((x, y - 1)\), \((x - 1, y - 1)\) sẽ tạo ra một ô vuông đơn vị. Tại một số ô vuông đơn vị sẽ có những chú ngựa đang say sưa tắm nắng. Các chàng cao bồi sẽ lần lượt chọn ra một điểm có toạ độ \((u, v)\) và thực hiện:
Hãy tính số con ngựa mà mỗi chàng cao bồi thu thập được để ban tổ chức có thể tìm ra người chiến thắng.
Test 1
5
1 2
1 3
1 4
1 5
1 6
5
6 7
5 6
4 5
3 3
8 4
5
5
4
2
0
Chàng cao bồi thứ nhất thu thập được các con ngựa \((1, 2), (1, 3), (1, 4), (1, 5), (1, 6)\):

Chàng cao bồi thứ hai thu thập được các con ngựa \((1, 2), (1, 3), (1, 4), (1, 5), (1, 6)\):

Chàng cao bồi thứ ba thu thập được các con ngựa \((1, 2), (1, 3), (1, 4), (1, 5)\):

Chàng cao bồi thứ tư thu thập được các con ngựa \((1, 2), (1, 3)\):

Test 2
10
5 1
2 3
6 4
7 5
8 4
6 2
3 4
5 4
4 8
8 1
5
10 9
9 7
6 6
8 5
7 8
10
9
6
3
1
Chàng cao bồi thứ nhất thu thập được các con ngựa \((2, 3), (3, 4), (4, 8), (5, 1), (5, 4), (6, 2), (6, 4), (7, 5), (8, 1), (8, 4)\):

Chàng cao bồi thứ hai thu thập được các con ngựa \((2, 3), (3, 4), (5, 1), (5, 4), (6, 2), (6, 4), (7, 5), (8, 1), (8, 4)\):

Chàng cao bồi thứ ba thu thập được các con ngựa \((2, 3), (3, 4), (5, 1), (5, 4), (6, 2), (6, 4)\):

Chàng cao bồi thứ tư thu thập được các con ngựa \((7, 5), (8, 1), (8, 4)\):

Chàng cao bồi thứ năm thu thập được các con ngựa \((4, 8)\):
