A15922 | Random Walk
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
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:
1. 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);
2. 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 $998\,244\,353$ .
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:
1. 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);
2. 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 $998\,244\,353$ .
输入格式
The first line contains three integers $n$ , $s$ and $t$ ( $2 \le n \le 2 \cdot 10^5$ ; $1 \le s, t \le n$ ; $s \neq 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 $u_i$ and $v_i$ ( $1 \le u_i, v_i \le n$ ; $u_i \neq v_i$ ), denoting the edge between the nodes $u_i$ and $v_i$ .
It's guaranteed that the given edges form a tree.
Next $n - 1$ lines contain edges of the tree: one edge per line. The $i$ -th line contains two integers $u_i$ and $v_i$ ( $1 \le u_i, v_i \le n$ ; $u_i \neq v_i$ ), denoting the edge between the nodes $u_i$ and $v_i$ .
It's guaranteed that the given edges form a tree.
输出格式
Print $n$ numbers: expected values of $c(v)$ modulo $998\,244\,353$ for each $v$ from $1$ to $n$ .
Formally, let $M = 998\,244\,353$ . It can be shown that the answer can be expressed as an irreducible fraction $\frac{p}{q}$ , where $p$ and $q$ are integers and $q \not \equiv 0 \pmod{M}$ . Output the integer equal to $p \cdot q^{-1} \bmod M$ . In other words, output such an integer $x$ that $0 \le x < M$ and $x \cdot q \equiv p \pmod{M}$ .
Formally, let $M = 998\,244\,353$ . It can be shown that the answer can be expressed as an irreducible fraction $\frac{p}{q}$ , where $p$ and $q$ are integers and $q \not \equiv 0 \pmod{M}$ . Output the integer equal to $p \cdot q^{-1} \bmod M$ . In other words, output such an integer $x$ that $0 \le x < M$ and $x \cdot q \equiv p \pmod{M}$ .
输入输出样例
输入 #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) = \frac{1}{2}$ , since there is the only one series of moves that leads $c(1) = 1$ . It's $1 \rightarrow 2 \rightarrow 3$ with probability $1 \cdot \frac{1}{2}$ .
- $P(c(1) = 2) = \frac{1}{4}$ : the only path is $1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 3$ .
- $P(c(1) = 3) = \frac{1}{8}$ : the only path is $1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 3$ .
- $P(c(1) = i) = \frac{1}{2^i}$ in general case.
As a result, $E[c(1)] = \sum\limits_{i=1}^{\infty}{i \frac{1}{2^i}} = 2$ . Image of tree in second test  Image of tree in third test 
 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) = \frac{1}{2}$ , since there is the only one series of moves that leads $c(1) = 1$ . It's $1 \rightarrow 2 \rightarrow 3$ with probability $1 \cdot \frac{1}{2}$ .
- $P(c(1) = 2) = \frac{1}{4}$ : the only path is $1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 3$ .
- $P(c(1) = 3) = \frac{1}{8}$ : the only path is $1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 1 \rightarrow_{1} 2 \rightarrow_{0.5} 3$ .
- $P(c(1) = i) = \frac{1}{2^i}$ in general case.
As a result, $E[c(1)] = \sum\limits_{i=1}^{\infty}{i \frac{1}{2^i}} = 2$ . Image of tree in second test  Image of tree in third test 
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted