Universal Cup Judging System

Universal Cup

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100 Hackeable ✓
Estadísticas

Trong thuật toán KMP, mảng next (còn được gọi là mảng LPS - viết tắt của Longest Prefix Suffix, hay hàm thất bại) là một khái niệm cốt lõi. Cho một xâu $S = s_1s_2\dots s_n$ có độ dài $n$, mảng next của nó là $next[1..n]$ được định nghĩa sao cho $next[i]$ biểu thị độ dài của tiền tố thực sự và hậu tố thực sự bằng nhau dài nhất của xâu con $S[1..i]$, cụ thể là $next[1] = 0$. Một cách hình thức, nó được định nghĩa như sau:

$$next[i] = \max_{k=0,\dots,i-1} \{k : S[1\dots k] = S[i-k+1\dots i]\}$$

Ở đây, $S[l..r]$ được định nghĩa là xâu con được tạo bởi ký tự thứ $l$ đến ký tự thứ $r$ của xâu $S$. Quy ước rằng $\forall 1 \le i \le n$, $S[1\dots 0] = S[i+1\dots i]$, cả hai đều là xâu rỗng.

Cho một mảng $A[1..n]$ có độ dài $n$. Bạn cần đếm xem có bao nhiêu xâu $S$ khác nhau có độ dài $n$ được định nghĩa trên bảng chữ cái $\Sigma$ có mảng next bằng đúng mảng $A$ đã cho. Kích thước của bảng chữ cái là $m$. Hãy in ra số lượng xâu như vậy theo modulo $998\,244\,353$.

Dữ liệu vào

Có nhiều bộ dữ liệu trong một tệp kiểm tra duy nhất. Dòng đầu tiên của dữ liệu vào chứa một số nguyên $T$ ($1 \le T \le 10^5$), cho biết số lượng bộ dữ liệu.

Đối với mỗi bộ dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên $n$ ($2 \le n \le 10^5$) và $m$ ($1 \le m \le 10^6$) lần lượt biểu thị độ dài của mảng đã cho và kích thước của bảng chữ cái.
  • Dòng thứ hai chứa $n$ số nguyên cách nhau bởi dấu cách, biểu thị mảng $A$ đã cho. Dữ liệu đảm bảo rằng $\forall 1 \le i \le n$, $0 \le A_i \le i - 1$.

Dữ liệu đảm bảo rằng tổng của $n$ không vượt quá $5 \times 10^5$, tức là $\sum n \le 5 \times 10^5$.

Dữ liệu ra

Đối với mỗi bộ dữ liệu, in ra một dòng duy nhất chứa một số nguyên, biểu thị số lượng xâu thỏa mãn điều kiện, lấy kết quả theo modulo $998\,244\,353$.

Ví dụ

Dữ liệu vào

3
3 3
0 1 2
7 3
0 0 0 1 2 3 0
7 3
0 0 0 1 2 3 1

Dữ liệu ra

3
24
0

Ghi chú

Đối với nhóm dữ liệu thứ hai trong ví dụ, giả sử bảng chữ cái $\Sigma = \{'a', 'b', 'c'\}$. $24$ xâu thỏa mãn yêu cầu là:

abbabbb abbabbc abcabcb abcabcc acbacbb acbacbc
accaccb accaccc baabaaa baabaac bacbaca bacbacc
bcabcaa bcabcac bccbcca bccbccc caacaaa caacaab
cabcaba cabcabb cbacbaa cbacbab cbbcbba cbbcbbb

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.