Gym 102428 D Dazzling stars 題解
2021-04-08 08:25 作者:昵稱不能為空voidf | 我要投稿
題目大意:給你一個(gè)二維畫布,上有帶權(quán)點(diǎn)集(即題目中說的不同亮度的星星),問是否存在一個(gè)角度,旋轉(zhuǎn)整個(gè)畫布,使得旋轉(zhuǎn)后從下往上打印可以使得點(diǎn)被打印出來的順序按點(diǎn)權(quán)順序不下降。
點(diǎn)的個(gè)數(shù)<=1000
上手不容易有思路,得畫個(gè)圖。

發(fā)現(xiàn)點(diǎn)與點(diǎn)間相互連線可以得到一組向量。
題目對(duì)相同亮度的星星的打印順序沒有要求,所以我們只需要將亮的星星向比它嚴(yán)格暗的星星連線,或者反過來,然后考察這些向量。
將這些向量平移到原點(diǎn)后發(fā)現(xiàn)題目有解的情況當(dāng)且僅當(dāng)有一條直線能在平移的過程中在不經(jīng)過任何一個(gè)向量尾的情況下抵達(dá)原點(diǎn),等價(jià)于存在兩條向量,它們的夾角大于等于180°。
那么我們就n^2連線,然后按極坐標(biāo)排序,然后按照相鄰兩個(gè)向量枚舉來判斷夾角即可。
標(biāo)簽: