Codeforces Round 992 (Div. 2) |
---|
Закончено |
Дано дерево с $$$n$$$ вершинами.
В некоторую вершину $$$v \ne 1$$$ посадят робота. Пусть у вас изначально есть $$$p$$$ монет. Рассмотрим следующий процесс, где в $$$i$$$-й шаг (начиная с $$$i = 1$$$):
Процесс останавливается, как только робот попадает в вершину $$$1$$$. Определим $$$f(v, p)$$$ как минимально возможное математическое ожидание количества шагов процесса выше (количество использованных монет минимизировать не надо).
Необходимо ответить на $$$q$$$ запросов, в $$$i$$$-м из которых надо найти значение $$$f(v_i, p_i)$$$ по модулю$$$^{\text{∗}}$$$ $$$998\,244\,353$$$.
$$$^{\text{∗}}$$$ Формально, пусть $$$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}$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^3$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа: $$$n$$$ и $$$q$$$ ($$$2 \le n \le 2 \cdot 10^3$$$; $$$1 \le q \le 2 \cdot 10^3$$$) — количество вершин в дереве и количество запросов.
В следующих $$$n - 1$$$ строках каждого набора входных данных заданы ребра дерева: по одному в строке. В $$$i$$$-й строке заданы два целых числа $$$u_i$$$ и $$$v_i$$$ ($$$1 \le u_i, v_i \le n$$$; $$$u_i \neq v_i$$$), обозначающих ребро между вершинами $$$u_i$$$ и $$$v_i$$$.
В следующих $$$q$$$ строках каждого набора входных данных заданы два целых числа: $$$v_i$$$ и $$$p_i$$$ ($$$2 \le v_i \le n$$$; $$$0 \le p_i \le n$$$).
Гарантируется, что заданные ребра образуют дерево.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10 ^ 3$$$.
Гарантируется, что сумма значений $$$q$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10 ^ 3$$$.
Для каждого набора входных данных выведите $$$q$$$ целых чисел: значения $$$f(v_i, p_i)$$$ по модулю $$$998\,244\,353$$$.
Формально, пусть $$$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}$$$.
24 41 22 32 42 03 04 03 112 101 22 32 41 55 66 76 86 98 1010 1110 126 09 010 011 03 17 110 112 112 211 12
1 6 6 2 4 9 8 15 2 3 6 9 5 5
Дерево из первого набора показано ниже:
Для первого запроса значение математического ожидания равно $$$1$$$, так как робот начинает движение с вершины $$$2$$$ и первым ходом попадает в вершину $$$1$$$ и завершает перемещение.
Посчитаем значение математического ожидания для второго запроса ($$$x$$$ это количество шагов в процессе):
В результате $$$f(v, p) = \sum\limits_{i=1}^{\infty}{i \cdot 2 \cdot \frac{2^{i - 1}}{3^i}} = 6$$$.
Дерево из второго набора показано ниже:
Название |
---|