QOJ.ac

QOJ

Süre Sınırı: 1.0 s Bellek Sınırı: 128 MB Toplam puan: 100 Hack'lenebilir ✓

#20075. Suite croissante de nombres aléatoires

İstatistikler

Colin a récemment reçu un cadeau d'Eva : un mystérieux générateur de suites croissantes de nombres aléatoires ! Il vous suffit d'entrer un entier strictement positif $n$, et le générateur vous renverra une suite croissante ! Après plusieurs essais, Colin a compris comment fonctionne le générateur.

Au départ, le générateur crée une nouvelle suite vide et choisit un nombre $k$ parmi $\{1, 2, \cdots, n\}$ de manière équiprobable.

Ensuite, le générateur choisit un nombre $x$ parmi $\{1, 2, \cdots, n\}$ de manière équiprobable comme premier élément de la suite.

Puis, le générateur répète le processus suivant :

  • Si le plus grand élément de la suite est supérieur ou égal à $k$, le générateur s'arrête immédiatement et renvoie la suite déjà générée.
  • Sinon, si le plus grand élément de la suite est $y$, alors le générateur choisit un nombre $x$ parmi $\{y + 1, y + 2, \cdots, n\}$ de manière équiprobable et ajoute $x$ à la fin de la suite.

Maintenant, Colin souhaite savoir, pour un entier $n$ donné, quelle est la longueur espérée de la suite renvoyée par le générateur ?

Entrée

Un seul entier $n$ ($1 \le n \le 10^7$).

Sortie

Un seul entier, représentant la longueur espérée modulo $998244353$.

Exemples

Entrée 1

3

Sortie 1

55458021

Remarque

  • Si $k = 1$, la longueur espérée est $1$.
  • Si $k = 2$, la longueur espérée est $1 \times \frac{2}{3} + 2 \times \frac{1}{3} = \frac{4}{3}$
  • Si $k = 3$, la longueur espérée est $1 \times \frac{1}{3} + 2 \times (\frac{1}{3} + \frac{1}{3} \times \frac{1}{2}) + 3 \times \frac{1}{3} \times \frac{1}{2} = \frac{11}{6}$

Ainsi, la réponse est $(1 + \frac{4}{3} + \frac{11}{6})/3 = \frac{25}{18}$.

L'inverse de $18$ modulo $998244353$ est $720954255$, donc le résultat affiché est $25 \times 720954255 \bmod 998244353 = 55458021$.

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.