LOJ 2882. 「JOISC 2014 Day4」两个人的星座
LOJ 2882. 「JOISC 2014 Day4」两个人的星座
对于任意两个凸多边形相离,一定可以找到一条直线将它们分在平面的两个区域
而对于三角形的情况更为特殊
分析可以发现,很难直接枚举三角形外直线计算,而对于任意的两个合法的三角形,在其6点中较近的4个点中
一定可以从两个三角形中各选一个点,连出两条交错的合法的分界线,例如下图
那么可以考虑枚举这样的一条直线,即确定了两个分界线上的端点,然后从两个半平面内选出不同颜色的点
直接枚举,然后$O(n)$数出这样的点,复杂度为$O(n^3)$
显然可以想到枚举一个顶点,然后对于其他极角排序,旋转另一个点,同步统计半平面内的点个数,复杂度为$O(n^2\log n)$
实现上,可以枚举一个点,尺取一个半平面内的点
1 |
|
一个更好的写法是把在$y$轴以下的点中心对称上来,统计时每跨过一个点改变一次
1 |
|