专栏文章
题解:CF799G Cut the pie
CF799G题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mipif0eg
- 此快照首次捕获于
- 2025/12/03 12:31 3 个月前
- 此快照最后确认于
- 2025/12/03 12:31 3 个月前
怎么又是这种偏 implementation 的计算几何。
考虑定义一个函数 代表,经过给定询问点 且倾斜角为 的直线将凸包划分成的的左半部分与右半部分的面积差。
显然可以发现 ,所以我们可以二分找到零点(根据若 ,则 中存在零点)。
现在我们只需要对于一个 快速求出 。这个可以通过找出直线与凸包的两个交点得到,也可以通过二分解决。得到交点后预处理出凸包的前缀叉积和就可以得到两部分的面积。
现在就口胡完了,不过如果你像我一开始写的对上下凸壳分讨交点,就会发现这个实现相当麻烦(也有可能是我太菜了)。
以下内容借鉴自 wxh 大佬的代码。
令 ,对于这条倾斜角为 的直线,我们在其上取向量 。

当初始点 在向量左侧时:
若当前二分点 在向量右侧,可以通过向前或向后找来寻找两个交点。
若 在向量左侧,可以根据叉积判断 是否在向量 右侧。如果是的话则 ,否则 。
在向量右侧同理。
这样我们就做完了,卡卡精度就能过了。
怎么主播喜欢写粪啊(
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...