题库练习 Two Chess Pieces
← 上一题 下一题 →

A15610 | Two Chess Pieces

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Cirno\_9baka has a tree with $n$ nodes. He is willing to share it with you, which means you can operate on it.

Initially, there are two chess pieces on the node $1$ of the tree. In one step, you can choose any piece, and move it to the neighboring node. You are also given an integer $d$ . You need to ensure that the distance between the two pieces doesn't ever exceed $d$ .

Each of these two pieces has a sequence of nodes which they need to pass in any order, and eventually, they have to return to the root. As a curious boy, he wants to know the minimum steps you need to take.

输入格式

The first line contains two integers $n$ and $d$ ( $2 \le d \le n \le 2\cdot 10^5$ ).

The $i$ -th of the following $n - 1$ lines contains two integers $u_i, v_i$ $(1 \le u_i, v_i \le n)$ , denoting the edge between the nodes $u_i, v_i$ of the tree.

It's guaranteed that these edges form a tree.

The next line contains an integer $m_1$ ( $1 \le m_1 \le n$ ) and $m_1$ integers $a_1, a_2, \ldots, a_{m_1}$ ( $1 \le a_i \le n$ , all $a_i$ are distinct) — the sequence of nodes that the first piece needs to pass.

The second line contains an integer $m_2$ ( $1 \le m_2 \le n$ ) and $m_2$ integers $b_1, b_2, \ldots, b_{m_2}$ ( $1 \le b_i \le n$ , all $b_i$ are distinct) — the sequence of nodes that the second piece needs to pass.

输出格式

Output a single integer — the minimum steps you need to take.

输入输出样例

输入 #1
4 2
1 2
1 3
2 4
1 3
1 4
输出 #1
6
输入 #2
4 2
1 2
2 3
3 4
4 1 2 3 4
1 1
输出 #2
8
C++ 编辑器
输入
输出