专栏文章
题解:P13540 [IOI 2025] 羊驼的坎坷之旅(obstacles)
P13540题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mioizlni
- 此快照首次捕获于
- 2025/12/02 19:59 3 个月前
- 此快照最后确认于
- 2025/12/02 19:59 3 个月前
比较答辩但是很人类的做法!!
注意到起点终点都在第一行,这个看上去很有性质。我们猜测路径一定形如一堆 。设一列中第一个空的位置是 ,前缀连续空的长度是 , 之间的 位置为 ,那能这么走就相当于 。
这启发我们建出 的笛卡尔树。如果我们现在在一个子树 ,如果我们能到达 ,那去子树内 最大的点肯定是不劣的,然后如果 那就可以走到 的父亲,询问的时候只要看能跳到最高的位置是否相等即可。倍增做就可以获得 分。
对于最后一个 subtask,我们考虑区间笛卡尔树:先一直倍增到子树包含了端点,此时当前节点 一定是 或者 的 。如果两者都是那 就是根;如果 是 的 那父亲一定是 ,左儿子是 ,右儿子就是在笛卡尔树上的右儿子。如果右儿子的 已经满足要求那直接跳就行,否则需要 ,倍增跳 的时候维护所有点这个 的 即可。 是 的 的情况就是反过来。
时间复杂度 。code
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...