QOJ.ac

QOJ

Süre Sınırı: 5 s Bellek Sınırı: 1024 MB

#23597. Premier mot

İstatistikler

VegiCat possède une chaîne de caractères $S$ composée de $n$ lettres minuscules de l'alphabet anglais. Il souhaite construire un dictionnaire contenant $k$ sous-chaînes non vides distinctes de $S$ en tant que mots. Une sous-chaîne est une partie contiguë d'une chaîne. Les sous-chaînes ayant le même contenu sont considérées comme le même mot, même si elles apparaissent à des positions différentes dans $S$.

problem_23597_b7c3639e439584b24d8e3cd0c7e7774e.png

Soit $\pi$ une application associant aux lettres $\texttt{a}, \texttt{b}, \ldots, \texttt{z}$ les lettres correspondantes dans une permutation des $26$ lettres minuscules de l'alphabet anglais. Par exemple, la permutation $\texttt{qwertyuiopasdfghjklzxcvbnm}$ définit l'application suivante :

$$ \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} $$

Pour une chaîne $u = u_1 u_2 \cdots u_m$, on définit

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

Par exemple, avec l'application ci-dessus, $\pi(\texttt{apple}) = \texttt{qhhst}$.

VegiCat souhaite que le dictionnaire contienne un mot $w$ tel qu'après avoir appliqué n'importe quelle application $\pi$ de ce type à chaque mot du dictionnaire, $\pi(w)$ soit toujours le mot lexicographiquement le plus petit du dictionnaire résultant.

Pour chaque $k = 1, 2, \ldots, n$, trouvez le nombre de dictionnaires contenant $k$ mots distincts qui satisfont cette condition, modulo $998\,244\,353$. Deux dictionnaires sont considérés comme différents si et seulement s'ils contiennent des ensembles de mots différents avant l'application de toute bijection.

Rappelons qu'une chaîne $a$ est lexicographiquement plus petite qu'une chaîne $b$ si $a$ est un préfixe de $b$ (et $a \neq b$), ou s'il existe un indice $i$ ($1 \le i \le \min(|a|, |b|)$) tel que $a_i < b_i$ et que pour tout indice $j$ ($1 \le j < i$), $a_j = b_j$.

Entrée

La première ligne contient un entier $T$ ($1 \le T \le 10^4$), le nombre de cas de test. La description des cas de test suit.

La première ligne de chaque cas de test contient un entier $n$ ($1 \le n \le 10^5$).

La deuxième ligne contient une chaîne $S$ de longueur $n$, composée uniquement de lettres minuscules de l'alphabet anglais.

Il est garanti que la somme de $n$ sur l'ensemble des cas de test ne dépasse pas $10^5$.

Sortie

Pour chaque cas de test, affichez $n$ entiers sur une seule ligne. Le $k$-ième entier représente le nombre de dictionnaires contenant $k$ mots distincts et satisfaisant la condition, modulo $998\,244\,353$.

Exemples

Entrée 1

3
3
aab
4
ppqq
7
abcaabc

Sortie 1

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

Remarque

Chaque dictionnaire ci-dessous est écrit sous la forme d'un ensemble de mots.

Pour le premier cas de test, $S = \texttt{aab}$, les dictionnaires qui satisfont la condition pour $k = 1, 2, 3$ sont :

$k$ Ensembles de mots satisfaisant la condition Nombre de dictionnaires
$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.