K-subsequence

Xem dạng PDF

Gửi bài giải


Điểm: 0,10 (OI)
Giới hạn thời gian: 4.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho số nguyên ~k~ và xâu ~s~ có độ dài ~n~. Tưởng tượng bạn viết xuống toàn bộ ~2^n - 1~ dãy con không rỗng~^\dagger~ của xâu ~s~. Hãy đếm số lượng xâu ~t~ khác nhau được viết xuống đúng ~k~ lần. Vì kết quả có thể rất lớn, bạn cần tính theo modulo ~998\,244\,353~.

~^\dagger~ Một xâu ~t~ là một dãy con của xâu ~s~ nếu ~t~ có thể được thu được từ ~s~ bằng cách xóa đi một số (có thể là không) ký tự.

Input

Mỗi test gồm nhiều test case. Dòng đầu tiên chứa số lượng test case ~t~ (~1 \leq t \leq 10\,000~), theo sau là số lần xuất hiện dự định ~k~ (~1 \leq k \leq 2~), giống nhau cho mọi test case. Mô tả của mỗi test case như sau.

Dòng đầu tiên chứa một số nguyên ~n~ (~1 \le n \le 3 \cdot 10^5~) — độ dài của xâu ~s~.

Dòng thứ hai chứa xâu ~s~ gồm ~n~ ký tự Latinh in thường.

Đảm bảo rằng tổng của ~n~ qua tất cả các test case không vượt quá ~3 \cdot 10^5~.

Output

Với mỗi test case, in ra một số nguyên là số lượng xâu xuất hiện chính xác ~k~ lần như một dãy con trong ~s~, theo modulo ~998\,244\,353~.

Scoring

Subtask Điểm Ràng buộc
1 ~500~ Tổng của ~n~ qua tất cả các test case không vượt quá ~20~
2 ~1000~ ~k = 1~
3 ~1750~ ~k = 2~
Tổng ~3250~

Sample Input 1

3 2
3
aab
10
vnoihaibon
35
hiiamcurrentlyafirstyearphdstudents

Sample Output 1

2
74
911464594

Sample Input 2

3 1
3
aab
7
vnoicup
38
asomewhatnotshortblogonflowwithdemands

Sample Output 2

3
127
395878133

Notes

Test case đầu tiên của cả hai ví dụ có ~s = \mathtt{aab}~. Toàn bộ các dãy con không rỗng của ~s~ là ~[\mathtt{a}, \mathtt{a}, \mathtt{b}, \mathtt{aa}, \mathtt{ab}, \mathtt{ab}, \mathtt{aab}]~. Ta có thể thấy ~\mathtt{b}~, ~\mathtt{aa}~, và ~\mathtt{aab}~ xuất hiện một lần, còn ~\mathtt{a}~ và ~\mathtt{ab}~ xuất hiện hai lần.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.