QOJ.ac

QOJ

実行時間制限: 8 s メモリ制限: 64 MB 満点: 100

#1821. Comptage de Ketek

統計

On définit un Ketek comme une phrase qui se lit de la même manière de gauche à droite et de droite à gauche, mot par mot. Par exemple, « fall leaves after leaves fall » est un Ketek car les mots dans l'ordre inverse sont les mêmes que dans l'ordre original.

Étant donné une chaîne composée de lettres minuscules et du caractère « ? », comptez le nombre de Keteks distincts que vous pouvez former en remplaçant chaque « ? » par des lettres minuscules (une lettre par « ? »), et en ajoutant éventuellement des espaces entre les lettres. Notez qu'un Ketek ne peut contenir aucun « ? » ; ils doivent tous être remplacés exclusivement par des lettres minuscules.

Par exemple, si nous commençons avec la chaîne « ababa », nous pouvons former 3 Keteks différents : « ababa », « a bab a » et « a b a b a ».

Si nous commençons avec la chaîne « ?x?z » à la place, nous pouvons former 703 Keteks différents :

  • Il y a $26^2 = 676$ façons de remplacer les « ? » et de former un Ketek composé d'un seul mot.
  • Ajoutez des espaces pour former « ? x? z ». Il y a 26 façons de former un Ketek (le premier « ? » doit être z ; l'autre peut être n'importe quelle lettre minuscule).
  • Ajoutez un espace pour former « ?x ?z ». Il n'y a aucun moyen de former un Ketek.
  • Ajoutez des espaces pour former « ? x ? z ». Il y a une façon de former un Ketek (le premier « ? » doit être z ; le second doit être x).

Le total est $676 + 26 + 0 + 1 = 703$.

Deux Keteks sont différents s'ils ont un nombre de mots différent, ou s'il existe un indice de mot où les mots ne sont pas les mêmes.

Entrée

La ligne unique d'entrée contient une chaîne $s$ ($1 \le |s| \le 30\,000$), qui consiste en des lettres minuscules (« a » – « z ») et le caractère « ? ».

Sortie

Affichez le nombre de Keteks distincts qui peuvent être formés en remplaçant les « ? » par des lettres minuscules et en ajoutant des espaces. Comme ce nombre peut être grand, affichez-le modulo $998\,244\,353$.

Exemples

Entrée 1

ababa

Sortie 1

3

Entrée 2

?x?z

Sortie 2

703

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.