计算几何专题
来了,这个毒瘤知识点终于来了/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 |
..
由于显而易见的原因,这篇博客咕了。