Universal Cup Judging System

Universal Cup

Límite de tiempo: 3.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓
Estadísticas

有 $N$ 个盒子,分别标记为 $1$ 到 $N$。此外,对于 $1$ 到 $N$ 的每个整数,都有 $M$ 个标记为该整数的球。

这些 $NM$ 个球被打乱并分配到 $N$ 个盒子中,每个盒子恰好放入 $M$ 个球。

共有 $\frac{(NM)!}{(M!)^N}$ 种可能的放球方式(如果所有球都被视为可区分的),且所有这些排列出现的概率相等。

你将对这些盒子和球进行操作。一次操作包含以下步骤:

  1. 选择一个盒子并走到该盒子前。
  2. 如果该盒子中没有球,则终止该操作。
  3. 从该盒子中任选一个球并将其丢弃到盒子外。
  4. 最后,走到与最近丢弃的球的标记相匹配的盒子前,并返回步骤 2。

定义你的得分为丢弃所有 $NM$ 个球所需的操作次数。你希望最小化这个得分。

求当你采取最优策略时,得分的期望值对 $998244353$ 取模的结果。

输入格式

第一行包含 $N$ 和 $M$,由空格分隔。($1 \le N \le 10^5, 1 \le M \le 100$)

输出格式

输出答案。

样例

输入格式 1

2 2

输出格式 1

166374060

输入格式 2

3 1

输出格式 2

831870296

输入格式 3

100000 100

输出格式 3

402978825

说明

对于第一个样例,可能的球排列及对应的最优操作方式如下:

  • 将两个标记为 $1$ 的球放入盒子 $1$,两个标记为 $2$ 的球放入盒子 $2$。(概率为 $1/6$)

    • 在第一次操作中,走到盒子 $1$ 前。从中取出一个标记为 $1$ 的球并走到盒子 $1$ 前。然后再取出一个标记为 $1$ 的球并再次走到盒子 $1$ 前。此时,盒子 $1$ 为空,因此终止操作。
    • 在第二次操作中,走到盒子 $2$ 前。从中取出一个标记为 $2$ 的球并走到盒子 $2$ 前。然后再取出一个标记为 $2$ 的球并再次走到盒子 $2$ 前。此时,盒子 $2$ 为空,因此终止操作。
    • 在这种情况下,可实现的最小得分为 $2$。
  • 将一个标记为 $1$ 的球和一个标记为 $2$ 的球放入盒子 $1$ 和盒子 $2$ 中的每一个。(概率为 $2/3$)

    • 在第一次操作中,走到盒子 $1$ 前。从中取出一个标记为 $1$ 的球并走到盒子 $1$ 前。然后取出一个标记为 $2$ 的球并走到盒子 $2$ 前。接着取出一个标记为 $2$ 的球并走到盒子 $2$ 前。最后取出一个标记为 $1$ 的球并走到盒子 $1$ 前。此时,盒子 $1$ 为空,因此终止操作。
    • 在这种情况下,可实现的最小得分为 $1$。
  • 将两个标记为 $2$ 的球放入盒子 $1$,两个标记为 $1$ 的球放入盒子 $2$。(概率为 $1/6$)

    • 在第一次操作中,走到盒子 $1$ 前。从中取出一个标记为 $2$ 的球并走到盒子 $2$ 前。然后取出一个标记为 $1$ 的球并走到盒子 $1$ 前。接着取出一个标记为 $2$ 的球并走到盒子 $2$ 前。最后取出一个标记为 $1$ 的球并走到盒子 $1$ 前。此时,盒子 $1$ 为空,因此终止操作。
    • 在这种情况下,可实现的最小得分为 $1$。

综上所述,最小得分为 $2$ 的概率为 $1/6$,最小得分为 $1$ 的概率为 $5/6$,因此总的期望得分为 $7/6$。因此,输出 $166374060$,即该值对 $998244353$ 取模的结果。

期望值对 998244353 取模的定义

可以证明,待求的期望值总是一个有理数。此外,在本题的约束下,如果期望值写成最简分数 $\frac{y}{x}$,可以保证 $x$ 不能被 $998244353$ 整除。

在这种情况下,存在唯一的整数 $z$ 满足 $0 \le z \le 998244352$ 且 $xz \equiv y \pmod{998244353}$。输出这个 $z$。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1526EditorialOpen题解jiangly2026-04-15 16:03:55View

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.