#ABC329G. 树上配送
树上配送
树上配送
题目描述
给定一棵有 个顶点的二叉树。顶点编号为 到 ,顶点 是根。第 条边双向连接顶点 和顶点 。
这棵树上有一个篮子和 个球。球编号为 到 ,每个球 都指定了起点 和终点 。初始时,篮子为空并放置在顶点 ,球分别放在各自的起点上。
你可以任意多次、以任意顺序进行以下操作。
设当前篮子所在的顶点为 ,执行以下任一操作:
- 选择一条与顶点 相连的边,将篮子沿该边移动到相邻顶点。此时篮子内的球也一起移动。
- 选择一个起点为 、且仍放在顶点 上的球,将其放入篮子。该操作仅在篮子中球的个数少于 个时可以进行(即篮子中不能放入 个或更多的球)。
- 从篮子中选择一个终点为 的球,将其取出并放在顶点 。
所有操作结束后,篮子为空并放置在顶点 ,且所有球都放在各自的终点,这样的操作序列称为好操作序列。
频繁移动篮子很累,因此篮子移动的路径限定为:每条边恰好经过 次,最后回到顶点 。求这样的路径中,存在沿该路径移动篮子的好操作序列的路径条数,对 取模。
输入格式
输入按以下格式从标准输入给出。
输出格式
输出所有边恰好经过 次并回到顶点 的路径中,存在沿该路径移动篮子的好操作序列的路径条数对 取模的结果。
样例
5 2 1
1 1 3 3
2 4
5 3
1
在所有边恰好经过 次并回到顶点 的路径中,存在沿该路径移动篮子的好操作序列的路径只有 种。
具体地,可以构造出如下的好操作序列:
- 将篮子移到顶点 。
- 将球 放入篮子。
- 将篮子移到顶点 。
- 将篮子移到顶点 。
- 将篮子移到顶点 。
- 将球 从篮子取出,放在顶点 。
- 将篮子移到顶点 。
- 将篮子移到顶点 。
- 将球 放入篮子。
- 将篮子移到顶点 。
- 将球 从篮子取出,放在顶点 。
- 将篮子移到顶点 。
5 2 2
1 1 3 3
2 4
5 3
2
与样例 1 相比, 的值增加了 。因此,除上述路径外,还有 条路径也能构造出好操作序列。
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
数据范围
- 对所有 ,满足 的 至多有 个
- 输入均为整数
难度
省选/NOI-
通过率
—
尝试
0
已通过
0
- ID
- 3129
- 类型
- 传统题
- Time Limit
- 3000ms
- Memory Limit
- 1024MiB
- 上传者