专栏文章
9056
P9056题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miodt651
- 此快照首次捕获于
- 2025/12/02 17:34 3 个月前
- 此快照最后确认于
- 2025/12/02 17:34 3 个月前
先考虑一条链的情况。
用 nth-element 的思路,先确定链的两端点 ,在 范围内随一个点 ,显然可以询问 知道 在 还是在 。然后根据在 和在 的 的数量选择递归到 和 。这个是 的,可以过 A 性质。
对于不在一条链上的情况,还是用刚才的思路,假设我们知道了树上的两个点 ,并且确定重心在 和 的路径上,不妨把树上的点分为 个集合,,其中 为在 外侧的点, 为在 和 的路径上的点, 为不在 路径上且在 和 之间的点,如图:

对于 中的点 ,我们称 是 的「投影」当且仅当存在简单路径包含 且存在简单路径包含 。例如上图 是 的「投影」。显然可以通过两次询问知道 的「投影」是否为 。
显然,可以通过一次询问知道一个点处于哪个集合中,具体地:
- 若 回答为 则 。
- 若 回答为 则 ,回答为 同理。
- 若 回答为 则 。
和前面类似,随机一个 上的点 ,然后询问,显然有:
- 对于 ,若询问 回答为 则 在 和 两点间,否则 在 和 两点间,令在 和 两点间的 集合为 ,在 和 两点间的 集合为 。
- 对于 ,若询问 回答为 则 在 和 两点间,询问 回答为 则 在 和 两点间,若均不为 则说明 是 的「投影」,令在 和 两点间的 集合为 ,在 和 两点间的 集合为 ,满足 是 的「投影」的 集合为 。
这样也可以知道以 为根在 一侧的子树点集 和在 一侧的子树点集 。
显然若 则重心应在 到 路径上,若 则重心应在 到 路径上,若均不超过 则重心只有可能在 。
若重心不在 ,递归到 或 即可。假如递归到了 则此时有 。
注意到为了确保复杂度,这里的随机 应当为带权随机, 的权值应为满足 是 的「投影」的 的数量 。
显然没办法快速直接查询出来每个 的权值,那么考虑随机随 中的点 ,如果 ,则不变,反之则令 的「投影」为 ,让 ,容易发现这样随机的权值和上面所说的是一样的。
此时期望询问次数为 。
现在我们无法确定起始的 和 。
我们有结论:随机 和 ,若重心不在 和 的路径上则重随,期望重随的次数是 的。
- 大致证明就是钦定重心为根,不在 和 路径上等价于 在同一子树内,最坏情况应该是两个 大小的子树,这个时候随机到重心概率是 ,因此期望是 的。
那就直接随机 ,用上面的方法找重心,然后用摩尔投票判定找到的「重心」是否是真的重心即可。
期望询问次数 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...