专栏文章

虎!虎!虎!

P10651题解参与者 2已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@mipaz0q8
此快照首次捕获于
2025/12/03 09:02
3 个月前
此快照最后确认于
2025/12/03 09:02
3 个月前
查看原文

Solution

爆标了兄弟们,稳定 1616 次询问,不需要任何随机化(事实上只能证明是 2424)。
先放一下 loj 的通过记录:AC Link
首先考虑怎么做 6060 分。前几个 Sub 的特征是,k=2nk=2n
考虑将整张图三角剖分。对于一个平面图,有欧拉公式 VE+F=1V - E + F = 1。而 E32FE \ge \frac{3}{2} F,得 F2nF \le 2n。这样只需要 2n2n 次询问就可以确定虎在哪个多边形中。
不过有个问题:为什么一定能三角剖分,怎样三角剖分?
(注意本题没有三点共线,后面就不要考虑很多 corner case 了。)考虑将所有点按照 xx 排序,维护后缀凸包。
显然后缀凸包之间互相包含,而且并不相同。每加入一个点,相当于凸包外一个点和这个凸包作切线。那么会新增一个凸壳和一个点的之间的连边。而整个图实质上就剖分成这些“月牙”型结构的并,如下图所示。
考虑二分出一个后缀使得老虎恰好在这个后缀的凸包中。那么老虎肯定在这个凸包新增的月牙中。
对着月牙做一次二分就可以。这样一次询问只用两次二分。
如何对月牙作二分呢?我们需要判定老虎是不是在月牙的前 kk 个三角形中。直接查询包含他们的最小凸包(这个凸包一定是首尾端点构成的三角形。可能会包含之前凸包的部分,但是我们保证了老虎不在里面,所以是无所谓的)。

评论

2 条评论,欢迎与作者交流。

正在加载评论...