数据范围
- 给定的是以点 为根的有根树;
- 每个节点的儿子数为 或 ;
- ;
- 对于任意 ,;
- 对于任意 ,;
- 对于任意 ,。
子任务
定义两个节点的距离为连接这两个节点的唯一简单路的边权之和。
定义叶子为有 个儿子的点。
| 编号 |
得分 |
限制 |
|
|
|
|
|
对于任意有两个儿子的点 , 的其中一个儿子是叶子 |
|
|
,所有叶子到点 距离均为 () |
|
|
,所有节点到点 的距离至多为 |
|
|
无额外限制 |
计分方式
对于子任务 ,若网格深度恰为 的画图方式不存在,且 compute_min_depth 返回 ,该测试点将被判为正确。更为精确地说:
- 对于存在网格深度恰为 的画图方式的测试点:
- 对于不存在网格深度恰为 的画图方式的测试点:
- 若返回最小网格深度,得满分;
- 若返回 ,得满分;
- 否则,得 分。
注意:子任务 中,所有叶子到点 的距离均相等,为 。
样例
样例
考虑以下调用:
compute_min_depth(5, [4, 0, 4, 0], [1, 2, 1, 1], [0, 1, 1, 0])
::::align{center}
::::
可以证明,不存在网格深度小于 的绘图。
因此,该函数应返回 。
样例
考虑以下调用:
compute_min_depth(9, [0, 0, 1, 1, 2, 2, 5, 5], [2, 1, 1, 1, 1, 1, 1, 1], [0, 1, 0, 1, 0, 1, 0, 1])
- 我们可以画出一棵网格深度为 的树,如下图所示。
::::align{center}
::::
因此,该函数应返回 。