极角排序.
两个三角形如果相离,则一定可以用公切线分开.
枚举两个点的连线作为公切线,统计两个半平面中各类颜色点的数目,时间复杂度 $O(n^3)$ .
优化一下,先枚举一个点作为原点,对其他点极角排序.
再枚举另一个点,用前缀和询问两个半平面中各类颜色点的数目.
由于两个相离的三角形通过顶点相连可以产生 $4$ 根公切线,所以最后还需要将答案除掉 $4$ .
时间复杂度 $O(n^2\log n)$ .
1 | //%std |
夢はここに 思い出は遠くに
极角排序.
两个三角形如果相离,则一定可以用公切线分开.
枚举两个点的连线作为公切线,统计两个半平面中各类颜色点的数目,时间复杂度 $O(n^3)$ .
优化一下,先枚举一个点作为原点,对其他点极角排序.
再枚举另一个点,用前缀和询问两个半平面中各类颜色点的数目.
由于两个相离的三角形通过顶点相连可以产生 $4$ 根公切线,所以最后还需要将答案除掉 $4$ .
时间复杂度 $O(n^2\log n)$ .
1 | //%std |