QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: Diaosi

Posted at: 2026-01-25 19:57:36

Last updated: 2026-01-28 17:50:30

Back to Problem

Editorial for #9554

前半段跟标算一样,相当于是求若干射线与凸包的交面积。但是由于旋转中心 $O$ 可能会在凸包的外面或者边界上,这会导致要讨论许多 corner case。

注意到出题人为了避免精度问题把值域开的很小,而根据经典结论,值域为 $\mathcal{O}(V)$ 的严格凸包大小是 $\mathcal{O}\big(V^{2/3}\big)$ 的。换句话说,凸包上有用的边不会太多。对于原本的每个划分区域,我们把划分这个区域的两条射线和凸包的边丢到一起做半平面交,复杂度只有 $\mathcal{O}\big(nV^{2/3}\big)$。

事实上只需要用 convex cut 切凸包两次,不仅跑得快精度还高,这样就完美地避免了各种分类讨论。这个做法实际表现是非常优秀的,在使用 double 的情况下只跑了 69ms/7000ms。

Comments

No comments yet.