Universal Cup Judging System

Universal Cup

时间限制: 1.0 s 内存限制: 256 MB 总分: 100 可 Hack ✓
统计

Dalam algoritma KMP, larik next (juga dikenal sebagai larik LPS, singkatan dari Longest Prefix Suffix, atau fungsi kegagalan) adalah konsep inti. Diberikan sebuah string $S = s_1s_2\dots s_n$ dengan panjang $n$, larik next-nya $next[1..n]$ didefinisikan sedemikian sehingga $next[i]$ menyatakan panjang prefiks sejati dan sufiks sejati terpanjang yang sama dari substring $S[1..i]$, secara khusus, $next[1] = 0$. Secara formal, ini didefinisikan sebagai:

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

Di sini, $S[l..r]$ didefinisikan sebagai substring yang dibentuk oleh karakter ke-$l$ hingga karakter ke-$r$ dari string $S$. Dianggap bahwa $\forall 1 \le i \le n$, $S[1\dots 0] = S[i+1\dots i]$, yang keduanya merupakan string kosong.

Diberikan sebuah larik $A[1..n]$ dengan panjang $n$. Anda perlu menghitung berapa banyak string $S$ berbeda dengan panjang $n$ yang didefinisikan pada himpunan karakter $\Sigma$ yang memiliki larik next tepat sama dengan larik $A$ yang diberikan. Ukuran himpunan karakter adalah $m$. Keluarkan banyaknya string tersebut modulo $998\,244\,353$.

Masukan

Terdapat beberapa kasus uji dalam satu berkas uji. Baris pertama masukan berisi sebuah bilangan bulat $T$ ($1 \le T \le 10^5$), yang menyatakan banyaknya kasus uji.

Untuk setiap kasus uji:

  • Baris pertama berisi dua bilangan bulat $n$ ($2 \le n \le 10^5$) dan $m$ ($1 \le m \le 10^6$) yang menyatakan panjang larik yang diberikan dan ukuran himpunan karakter.
  • Baris kedua berisi $n$ bilangan bulat yang dipisahkan oleh spasi, menyatakan larik $A$ yang diberikan. Dijamin bahwa $\forall 1 \le i \le n$, $0 \le A_i \le i - 1$.

Dijamin bahwa total jumlah dari $n$ tidak melebihi $5 \times 10^5$, yaitu $\sum n \le 5 \times 10^5$.

Keluaran

Untuk setiap kasus uji, keluarkan satu baris berisi satu bilangan bulat, yang menyatakan banyaknya string yang memenuhi syarat, dengan jawaban diambil modulo $998\,244\,353$.

Contoh

Masukan

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

Keluaran

3
24
0

Catatan

Untuk kelompok data kedua pada contoh, misalkan himpunan karakter $\Sigma = \{'a', 'b', 'c'\}$. Ke-$24$ string yang memenuhi persyaratan adalah:

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.