#4923. Delivery on Tree
0
Delivery on Tree
Delivery on Tree
题目描述
给定一棵有 个顶点的二叉树。顶点编号为 到 ,顶点 为根。第 条边 双向连接顶点 和 顶点 。 树上有一个篮子和 个球。球编号为 到 ,每个球 有一个指定的起始顶点 和目标顶点 。初始时,篮子为空并放在顶点 ,球放在各自的起始顶点上。 你可以任意次数按任意顺序执行下列操作。
令 为当前篮子所在的顶点。执行以下三项之一: 选择一条与顶点 相连的边,沿该边移动篮子到相邻的顶点。篮子内的球随篮子一起移动。 选择一个起始顶点为 且仍放置在 的球,并把它放入篮子。此操作只能在篮子中球的数量少于 时执行(即篮子中不能包含 个或更多球)。 从篮子中选择一个目标顶点为 的球并把它取出,放置在顶点 。
当且仅当篮子最终为空并放回顶点 ,且球最终被放置在它们各自的目标顶点时,称该操作序列为可行操作序列。 由于频繁移动篮子很费力,篮子的移动路径应在返回顶点 之前恰好遍历每条边两次。求满足存在沿该路径执行的可行操作序列的此类路径的数量,对 取模。
输入格式
输入由标准输入按如下格式给出:
输出格式
输出满足存在沿该路径执行的可行操作序列的、在返回顶点 之前恰好遍历每条边两次的路径数量,对 取模。
5 2 1
1 1 3 3
2 4
5 3
1
5 2 2
1 1 3 3
2 4
5 3
2
15 4 2
1 2 1 4 2 3 4 7 3 7 5 9 11 8
14 12
5 4
13 15
5 12
8
提示
对于每个 ,至多有两个 满足 。
所有输入值均为整数。下图展示了给定的图。顶点旁的圆圈和方块分别表示球的起始顶点和目标顶点。
在每条边被恰好遍历两次并返回顶点 的路径中,只有一条路径存在沿该路径执行的可行操作序列,如下所示:
这里,你可以构造如下的可行操作序列:
-
将篮子移动到顶点 $2$。
把球 $1$ 放入篮子。
将篮子移动到顶点 $1$。
将篮子移动到顶点 $3$。
将篮子移动到顶点 $4$。
将球 $1$ 从篮子中取出并放在顶点 $4$。
将篮子移动到顶点 $3$。
将篮子移动到顶点 $5$。
把球 $2$ 放入篮子。
将篮子移动到顶点 $3$。
将球 $2$ 从篮子中取出并放在顶点 $3$。
将篮子移动到顶点 $1$。
从样例输入 1 中 $K$ 的值增加了 $1$。这使得除了上图所示的路径之外,你还能为下面的路径构造可行操作序列。

标签: AtCoder|abc329G
来源
AtCoder|abc329G