1. 程式人生 > 其它 >「JOISC 2014 Day4」兩個人的星座

「JOISC 2014 Day4」兩個人的星座

不知道怎麼想到的引理 qwq

首先突破口肯定在三角形不交,考慮尋找一些性質。

  • 引理一:兩個三角形不交當且僅當存在一個三角形的一條邊所在直線將兩個三角形分為異側

證明可以參考:三角形相離充要條件,大致思路是取兩個三角形重心連線,將其中一個三角形延重心連線平移兩三角形總會相交,同時也能根據相交情況找到一條這樣的直線。

  • 引理二:若三角形任意三點不共線,則兩個三角形不交當且僅當存在兩條內公切線

根據引理一,將所得到的直線平移並旋轉一定能得到兩條內公切線。

直接藉助引理一不好將問題分割,考慮利用引理二。

注意到一對不相交的三角形公切線數量為常數,於是列舉公切線的兩個切點,問題轉化為上下兩個半平面內找出另外兩種顏色的方案數,可以直接暴力統計。

發現同一種方案在會被四個有序切點對統計到,因此最後答案需要除 \(4\),複雜度 \(\mathcal{O}(n ^ 3)\).

考慮優化,列舉一個點,將其他所有點極角排序,半平面的顏色數按照極角排序列舉可以雙指標優化,複雜度 \(\mathcal{O}(n ^ 2 \log n)\).