Codeforces Round 868 (Div. 2) |
---|
Закончено |
Вам задано дерево, состоящее из $$$n$$$ вершин и $$$n - 1$$$ ребер, и у каждой вершины $$$v$$$ есть свой счетчик $$$c(v)$$$.
Первоначально в вершине $$$s$$$ расположена фишка, и все счетчики, кроме $$$c(s)$$$, равны $$$0$$$; $$$c(s)$$$ равен $$$1$$$.
Ваша задача — переместить фишку в вершину $$$t$$$. Для этого вы можете совершить следующую последовательность шагов. Пусть сейчас фишка расположена в вершине $$$v$$$. За один шаг вы можете сделать следующее:
Вы будете повторять данную операцию, пока не достигните вершины $$$t$$$.
Для каждой вершины $$$v$$$ вычислите математическое ожидание значения $$$c(v)$$$ по модулю $$$998\,244\,353$$$.
В первой строке заданы три целых числа: $$$n$$$, $$$s$$$ и $$$t$$$ ($$$2 \le n \le 2 \cdot 10^5$$$; $$$1 \le s, t \le n$$$; $$$s \neq t$$$) — количество вершин в дереве, стартовая и конечная вершины.
В следующих $$$n - 1$$$ строках заданы ребра дерева: по одному в строке. В $$$i$$$-й строке заданы два целых числа $$$u_i$$$ и $$$v_i$$$ ($$$1 \le u_i, v_i \le n$$$; $$$u_i \neq v_i$$$), обозначающих ребро между вершинами $$$u_i$$$ и $$$v_i$$$.
Гарантируется, что заданные ребра образуют дерево.
Выведите $$$n$$$ чисел: математические ожидания значений $$$c(v)$$$ по модулю $$$998\,244\,353$$$ для каждого $$$v$$$ от $$$1$$$ по $$$n$$$.
Формально, пусть $$$M = 998\,244\,353$$$. Можно показать, что ответ может быть представлен в виде несократимой дроби $$$\frac{p}{q}$$$, где $$$p$$$ и $$$q$$$ — целые числа, и $$$q \not \equiv 0 \pmod{M}$$$. Выведите целое число, равное $$$p \cdot q^{-1} \bmod M$$$. Другими словами, выведите такое целое число $$$x$$$, что $$$0 \le x < M$$$ и $$$x \cdot q \equiv p \pmod{M}$$$.
3 1 3 1 2 2 3
2 2 1
4 1 3 1 2 2 3 1 4
4 2 1 2
8 2 6 6 4 6 2 5 4 3 1 2 3 7 4 8 2
1 3 2 0 0 1 0 1
Дерево из первого примера показано ниже:
Название |
---|