CF1823F.Random Walk
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a tree consisting of n vertices and n−1 edges, and each vertex v has a counter c(v) assigned to it.
Initially, there is a chip placed at vertex s and all counters, except c(s), are set to 0; c(s) is set to 1.
Your goal is to place the chip at vertex t. You can achieve it by a series of moves. Suppose right now the chip is placed at the vertex v. In one move, you do the following:
- choose one of neighbors to of vertex v uniformly at random (to is neighbor of v if and only if there is an edge v,to in the tree);
- move the chip to vertex to and increase c(to) by 1;
You'll repeat the move above until you reach the vertex t.
For each vertex v calculate the expected value of c(v) modulo 998244353.
你被给定一棵包含 n 个顶点和 n−1 条边的树,且每个顶点 v 都关联一个计数器 c(v)。
初始时,一枚棋子被放置在顶点 s 上,除 c(s) 被设为 1 外,其余所有计数器均设为 0。
你的目标是将棋子移动至顶点 t。你可以通过一系列操作实现该目标。假设当前棋子位于顶点 v,则一次操作按如下步骤进行:
- 在顶点 v 的所有邻居 to 中均匀随机选择一个(即:当且仅当树中存在边 {v,to} 时,to 是 v 的邻居);
- 将棋子移至顶点 to,并将 c(to) 的值增加 1;
你将重复上述操作,直至棋子到达顶点 t。
对每个顶点 v,计算其计数器 c(v) 的期望值,并对 998244353 取模。
输入格式
The first line contains three integers n, s and t (2≤n≤2⋅105; 1≤s,t≤n; s=t) — number of vertices in the tree and the starting and finishing vertices.
Next n−1 lines contain edges of the tree: one edge per line. The i-th line contains two integers ui and vi (1≤ui,vi≤n; ui=vi), denoting the edge between the nodes ui and vi.
It's guaranteed that the given edges form a tree.
第一行包含三个整数 n、s 和 t(2≤n≤2⋅105;1≤s,t≤n;s=t),分别表示树中顶点的数量、起点和终点。
接下来的 n−1 行描述树的边:每行一条边。第 i 行包含两个整数 ui 和 vi(1≤ui,vi≤n;ui=vi),表示节点 ui 与 vi 之间存在一条边。
保证所给的边构成一棵树。
输出格式
Print n numbers: expected values of c(v) modulo 998244353 for each v from 1 to n.
Formally, let M=998244353. It can be shown that the answer can be expressed as an irreducible fraction qp, where p and q are integers and q≡0(modM). Output the integer equal to p⋅q−1modM. In other words, output such an integer x that 0≤x<M and x⋅q≡p(modM).
输出 n 个数:对每个 v(从 1 到 n),输出 c(v) 的期望值对 998244353 取模的结果。
形式化地,令 M=998244353。可以证明答案可表示为既约分数 qp,其中 p 和 q 为整数,且 q≡0(modM)。请输出整数 p⋅q−1modM。换言之,输出满足 0≤x<M 且 x⋅q≡p(modM) 的整数 x。
输入输出样例
输入#1
3 1 3 1 2 2 3
输出#1
2 2 1
输入#2
4 1 3 1 2 2 3 1 4
输出#2
4 2 1 2
输入#3
8 2 6 6 4 6 2 5 4 3 1 2 3 7 4 8 2
输出#3
1 3 2 0 0 1 0 1
说明/提示
The tree from the first example is shown below:

Let's calculate expected value E[c(1)]:
- P(c(1)=0)=0, since c(1) is set to 1 from the start.
- P(c(1)=1)=21, since there is the only one series of moves that leads c(1)=1. It's 1→2→3 with probability 1⋅21.
- P(c(1)=2)=41: the only path is 1→12→0.51→12→0.53.
- P(c(1)=3)=81: the only path is 1→12→0.51→12→0.51→12→0.53.
- P(c(1)=i)=2i1 in general case.
As a result, E[c(1)]=i=1∑∞i2i1=2.
Image of tree in second test 
Image of tree in third test 
第一个示例中的树如下所示:

我们来计算期望值 E[c(1)]:
- P(c(1)=0)=0,因为 c(1) 从初始时刻起就被设为 1。
- P(c(1)=1)=21,因为仅存在一条导致 c(1)=1 的操作序列:1→2→3,其概率为 1⋅21。
- P(c(1)=2)=41:唯一路径为 1→12→0.51→12→0.53。
- P(c(1)=3)=81:唯一路径为 1→12→0.51→12→0.51→12→0.53。
- 一般情况下,P(c(1)=i)=2i1。
因此,E[c(1)]=i=1∑∞i2i1=2。
第二个测试用例中的树图:
第三个测试用例中的树图:
输入解题思路,AI测评打分。不知道怎么写?