Universal Cup Judging System

Universal Cup

Limite de temps : 15.0 s Limite de mémoire : 256 MB Points totaux : 100
Statistiques

如果你在竞赛中准备过题目,你可能会发现以下事实违反直觉:从所有 $n$ 个节点的无根标号树中均匀随机选择一棵树,其期望直径为 $\Theta(\sqrt{n})$。

为什么这如此违反直觉?因为如果你曾经准备过树相关的题目,你可能知道生成随机树(不一定是均匀随机)最简单的方法之一是以下过程,我们可以称之为“偏斜随机生成器”:

  • 对于每个 $i$ 从 $2$ 到 $n$:
    • 在 $1$ 到 $i-1$ 之间随机选择一个 $j$,并添加边 $(i, j)$。
  • 通过选择 $1, 2, \dots, n$ 的随机排列来重新标记节点。

虽然这绝不是从 $n$ 个节点的无根标号树中进行均匀随机选择(根据凯莱公式,共有 $n^{n-2}$ 棵这样的树),但你可能会直观地认为这“足够接近”均匀随机,并且应该给出正确的期望直径。事实上,通过此过程生成的树的期望直径为 $\Theta(\log n)$(至少我认为是这样)。然而,这是错误的!事实证明,该过程在 $n^{n-2}$ 棵树中产生了一个高度偏斜的概率分布,足以改变期望直径。

让我们测试一下这个新发现的知识。假设一棵 $n$ 个节点的随机加权无根标号树是按如下方式选择的:

  • 首先,从 $n^{n-2}$ 棵无权无根标号树中均匀随机选择一棵。
    • 重要提示:无权无根标号树的选择在 $n^{n-2}$ 棵不同的树中是均匀的;上述“偏斜随机生成器”过程将不会被使用。
  • 接下来,对于每条边,以概率 $p_1$ 赋予权重 $1$,以概率 $p_2$ 赋予权重 $2$。注意 $p_1 + p_2 = 1$。

给定 $n$,以这种方式选择的树的期望直径是多少?求这个数“模 998244353”的结果;即:

  • 令 $m = 998244353$。
  • 可以证明答案是有理数(假设 $p_1$ 和 $p_2$ 是有理数)。
  • 将答案写成最简分数 $u/v$,其中 $v$ 为正数。
  • 可以证明(在题目限制条件下)存在唯一的整数 $r$,使得 $0 \le r < m$ 且 $rv \equiv u \pmod m$。你的目标是找到这个唯一的 $r$。

说明

  • $n$ 个节点的无根标号树是一个连通的无环无向图,其节点为 $1, 2, \dots, n$。
  • 加权图的直径是其中任意简单路径的最大权重。
  • 简单路径是指没有重复节点的路径;即一个由不同节点组成的序列 $s_0, s_1, \dots, s_k$,使得对于每个 $i$,都存在一条边 $(s_i, s_{i+1})$。
  • 简单路径的权重是其路径上所有边的权重之和。

输入格式

输入包含一行,包含三个空格分隔的整数 $n, x$ 和 $y$。概率 $p_1$ 和 $p_2$ 定义如下:

$$p_1 = x/y$$ $$p_2 = 1 - p_1$$

  • $1 \le n \le 2000$
  • $0 \le x \le y \le 1000$

输出格式

输出一行,包含表示答案的整数。

样例

样例输入 1

2 1 3

样例输出 1

665496237

样例输入 2

3 2 3

样例输出 2

665496238

说明

对于 $n = 2$,只有 $2^0 = 1$ 棵无权树,以及 $2$ 棵加权树,直径分别为 $1$ 和 $2$,概率分别为 $1/3$ 和 $2/3$。期望直径为 $5/3$,答案为 $r = 665496237$,因为它是满足以下条件的唯一整数:

  • $0 \le r < 998244353$
  • $3r \equiv 5 \pmod{998244353}$

对于 $n = 3$,共有 $3^1 = 3$ 棵无权树,以及 $12$ 棵加权树。

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.