| Codeforces Round 1129 (Div. 2) |
|---|
| Закончено |
Вам дано дерево из $$$n$$$ вершин, пронумерованных от $$$1$$$ до $$$n$$$.
Вам нужно выполнить над этим деревом $$$m$$$ операций. Операция $$$i$$$ состоит из двух шагов:
Если между вершиной $$$1$$$ и вершиной $$$v_i$$$ уже есть ребро, новое ребро всё равно добавляется, а цикл состоит из этих двух параллельных рёбер.
Найдите максимально возможное расстояние$$$^{\text{∗}}$$$ между вершинами $$$1$$$ и $$$n$$$ после выполнения всех $$$m$$$ операций.
$$$^{\text{∗}}$$$Расстояние между двумя вершинами дерева — это количество рёбер на единственном простом пути между ними.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 5 \cdot 10^5$$$, $$$1 \le m \le 5 \cdot 10^5$$$) — количество вершин и количество операций.
Каждая из следующих $$$n - 1$$$ строк содержит два целых числа $$$x$$$ и $$$y$$$ ($$$1 \le x, y \le n$$$, $$$x \ne y$$$) — ребро исходного дерева. Гарантируется, что данные рёбра образуют дерево.
Следующая строка содержит $$$m$$$ целых чисел $$$v_1, v_2, \ldots, v_m$$$ ($$$2 \le v_i \le n$$$), описывающих операции.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.
Гарантируется, что сумма значений $$$m$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — максимально возможное расстояние между вершинами $$$1$$$ и $$$n$$$ после выполнения всех $$$m$$$ операций.
52 21 22 23 21 22 32 37 21 22 33 72 44 51 66 510 41 22 33 102 44 55 61 77 88 99 8 6 107 11 22 71 33 44 55 66
12562
В первом наборе входных данных дерево состоит из единственного ребра $$$(1, 2)$$$ и остаётся неизменным после каждой операции. Поэтому ответ равен $$$1$$$.
Во втором наборе входных данных расстояние между вершинами $$$1$$$ и $$$3$$$ изначально равно $$$2$$$, и ни одна из операций не может его увеличить. Поэтому ответ равен $$$2$$$.
В третьем наборе входных данных в первой операции можно удалить только что добавленное ребро. Во второй операции добавляется ребро $$$(1, 5)$$$, после чего мы удаляем ребро $$$(1, 2)$$$. После этого путь от $$$1$$$ до $$$7$$$ имеет вид $$$1 \to 5 \to 4 \to 2 \to 3 \to 7$$$, поэтому расстояние равно $$$5$$$. Можно показать, что получить большее расстояние невозможно. Поэтому ответ равен $$$5$$$.
| Название |
|---|


