QOJ.ac

QOJ

Límite de tiempo: 5 s Límite de memoria: 1024 MB

#23597. Бірінші сөз

Estadísticas

VegiCat-та $n$ кіші ағылшын әріптерінен тұратын $S$ жолы бар. Ол сөздері ретінде $S$ жолының өзара әртүрлі $k$ бос емес ішкі жолын қамтитын сөздік құрастырғысы келеді. Ішкі жол дегеніміз — жолдың біртұтас бөлігі. Мазмұны бірдей ішкі жолдар $S$ ішінде әртүрлі орындарда кездессе де, бір сөз ретінде қарастырылады.

problem_23597_b7c3639e439584b24d8e3cd0c7e7774e.png

$\pi$ — $\texttt{a}, \texttt{b}, \ldots, \texttt{z}$ әріптеріن $26$ кіші ағылшын әріптерінің қандай да бір орын алмастыруындағы сәйкес әріптерге бейнелеу болсын. Мысалы, $\texttt{qwertyuiopasdfghjklzxcvbnm}$ орын алмастыруы келесі бейнелеуді анықтайды:

$$ \begin{array}{c|cccccccccccccccccccccccccc} c & \texttt{a} & \texttt{b} & \texttt{c} & \texttt{d} & \texttt{e} & \texttt{f} & \texttt{g} & \texttt{h} & \texttt{i} & \texttt{j} & \texttt{k} & \texttt{l} & \texttt{m} & \texttt{n} & \texttt{o} & \texttt{p} & \texttt{q} & \texttt{r} & \texttt{s} & \texttt{t} & \texttt{u} & \texttt{v} & \texttt{w} & \texttt{x} & \texttt{y} & \texttt{z} \\ \hline \pi(c) & \texttt{q} & \texttt{w} & \texttt{e} & \texttt{r} & \texttt{t} & \texttt{y} & \texttt{u} & \texttt{i} & \texttt{o} & \texttt{p} & \texttt{a} & \texttt{s} & \texttt{d} & \texttt{f} & \texttt{g} & \texttt{h} & \texttt{j} & \texttt{k} & \texttt{l} & \texttt{z} & \texttt{x} & \texttt{c} & \texttt{v} & \texttt{b} & \texttt{n} & \texttt{m} \end{array} $$

$u = u_1 u_2 \cdots u_m$ жолы үшін былай анықтайық:

$$ \pi(u) = \pi(u_1)\pi(u_2) \cdots \pi(u_m). $$

Мысалы, жоғарыдағы бейнелеу бойынша $\pi(\texttt{apple}) = \texttt{qhhst}$.

VegiCat сөздіктегі әрбір сөзге осындай кез келген $\pi$ бейнелеуін қолданғаннан кейін, нәтижесінде алынған сөздікте $\pi(w)$ әрқашан лексикографиялық тұрғыдан ең кіші сөз болатындай $w$ сөзінің сөздікте болғанын қалайды.

Әрбір $k = 1, 2, \ldots, n$ үшін $k$ әртүрлі сөзден тұратын және талапты қанағаттандыратын сөздіктер санын $998\,244\,353$ модулі бойынша табыңыз. Екі сөздік кез келген бейнелеу қолданылғанға дейін әртүрлі сөздер жиынын қамтыса және тек сонда ғана әртүрлі болып есептеледі.

Еске сала кетейік, егер $a$ жолы $b$ жолының префиксі болса (және $a \neq b$), немесе $a_i < b_i$ болатындай және кез келген $j$ ($1 \le j < i$) индексі үшін $a_j = b_j$ орындалатындай $i$ ($1 \le i \le \min(|a|, |b|)$) индексі табылса, онда $a$ жолы лексикографиялық тұрғыдан $b$ жолынан кіші болады.

Енгізу деректері

Бірінші жолда тест жағдайларының санын білдіретін бүтін сан $T$ ($1 \le T \le 10^4$) берілген. Одан кейін тест жағдайларының сипаттамасы беріледі.

Әрбір тест жағдайының бірінші жолында бүтін сан $n$ ($1 \le n \le 10^5$) берілген.

Екінші жолда тек кіші ағылшын әріптерінен тұратын ұзындығы $n$ болатын $S$ жолы берілген.

Барлық тест жағдайлары бойынша $n$ қосындысы $10^5$-нен аспайтынына кепілдік беріледі.

Шығару деректері

Әрбір тест жағдайы үшін бір жолға $n$ бүтін сан шығарыңыз. $k$-шы бүтін сан $k$ әртүрлі сөзді қамтитын және талапты қанағаттандыратын сөздіктер санын $998\,244\,353$ модулі бойынша білдіреді.

Examples

Input 1

3
3
aab
4
ppqq
7
abcaabc

Output 1

5 4 3
8 10 11 10
21 52 87 119 139 128 84

Ескертпе

Төмендегі әрбір сөздік сөздер жиыны ретінде жазылған.

Бірінші тест жағдайы үшін, $S = \texttt{aab}$, $k = 1, 2, 3$ болғанда талапты қанағаттандыратын сөздіктер:

$k$ Талапты қанағаттандыратын сөздер жиыны Сөздіктер саны
$1$ $\{\texttt{a}\,\},\ \{\texttt{b}\,\},\ \{\texttt{aa}\,\},\ \{\texttt{ab}\,\},\ \{\texttt{aab}\,\}$ $5$
$2$ $\{\texttt{a}, \texttt{aa}\,\},\ \{\texttt{a}, \texttt{ab}\,\},\ \{\texttt{a}, \texttt{aab}\,\},\ \{\texttt{aa}, \texttt{aab}\,\}$ $4$
$3$ $\{\texttt{a}, \texttt{aa}, \texttt{ab}\,\},\ \{\texttt{a}, \texttt{aa}, \texttt{aab}\,\},\ \{\texttt{a}, \texttt{ab}, \texttt{aab}\,\}$ $3$

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#3182EditorialOpenNew Editorial for Problem #23597ucup-team9445View

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.