#CF1774E. 两枚棋子
两枚棋子
两枚棋子
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定一棵以 1 号点为根、含有 个节点的树。初始时两枚棋子均位于根节点。一次操作可将任意一枚棋子沿一条边移动到相邻节点,但操作后的任意时刻,两枚棋子的距离都不得超过 。
第一枚棋子必须访问集合 中的所有节点,第二枚棋子必须访问集合 中的所有节点,访问顺序任意。完成访问后,两枚棋子都必须回到根节点。求最少操作次数。
输入格式
第一行包含两个整数 。
接下来 行,每行两个整数 ,表示树边 。
下一行先给出整数 ,随后给出 个互不相同的节点,构成集合 。
最后一行先给出整数 ,随后给出 个互不相同的节点,构成集合 。
输出格式
输出一个整数,表示最少操作次数。
样例输入 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
数据范围
- ;
- 输入边构成一棵树;
- ,每个集合内部的节点互不相同。
本题采用独立测试点计分,每个测试点等分。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 24 | |
| 2 | 36 | 树是一条以 1 号点为端点的链 |
| 3 | 40 | 无特殊限制 |
提示
若某枚棋子必须到达节点 ,另一枚棋子至少要到达 的第 级祖先(深度不足时视为根节点)。