计算几何专题

来了,这个毒瘤知识点终于来了/kk

由于我实在菜的要死,一题要调一天,并且还没有停课,所以这一篇博客很有可能突然消失(指咕咕咕)。

CF1218B Guarding warehouses

考虑对极角进行扫描线,把当前与扫描线有交的凸包按由近到远的顺序放在set里面。

由于凸包的优秀性质,容易发现扫描线过程中两个凸包的顺序不会发生变化。判断顺序可以用凸包中极角序最大和最小的两个点的连线与扫描线的交点离原点的距离。

显然,每次线动的时候只需要计算离得最近的那个凸包的贡献就可以了。更进一步,只有离得最近的那个凸包要变化(加入了一个更近的,或是这个凸包要被删除)的时候需要统计贡献。

那么现在就相当于是要对于某一个凸包和一个极角序区间,算这个凸包在这个区间中的面积。我们可以先差分一下,然后用双指针得到这条射线与凸包的两个交点,然后用预处理出的叉积前缀和来统计答案。

细节感觉挺多,比如有多点共线等毒瘤情况,反正我搞了一下午/kk

https://codeforces.com/contest/1218/submission/76313159

5.25

两个星期前就停课了,但计算几何实在不怎么想搞/kk

# When Problem Verdict
81363644 May/25/2020 16:40UTC+8 D - Hongcow Draws a Circle Compilation error
81357920 May/25/2020 15:25UTC+8 I - Cowboy Beblop at his computer Compilation error
81354479 May/25/2020 14:40UTC+8 E - Hag's Khashba Compilation error
81354286 May/25/2020 14:37UTC+8 E - Billiard Compilation error
81353966 May/25/2020 14:33UTC+8 F - Disjoint Triangles Compilation error

..

由于显而易见的原因,这篇博客咕了。

posted @ 2020-04-12 18:10  p_b_p_b  阅读(383)  评论(0编辑  收藏  举报