1. 程式人生 > >【BZOJ2395】【Balkan 2011】Timeismoney 最小乘積生成樹

【BZOJ2395】【Balkan 2011】Timeismoney 最小乘積生成樹

imei 處理 最小乘積 一個 答案 轉化 每一個 兩個 。。

兩個屬性

考慮化成二維平面的點

每一個方案對應二維平面上的一個點(t,c)

答案一定在下凸殼上

先找到t,c的最小生成樹點A,B這兩者一定在凸包上

連線AB,找下面距離AB最遠點C

即CA CB叉積最小(註意帶符號)

推式子,改邊權即可。

然後遞歸處理其余兩邊的點

凸包上的點不會太多。。。O(能過)

坐標轉化思想註意

有的時候坐標可以:求凸包,斜率優化,掃描線。。。

【BZOJ2395】【Balkan 2011】Timeismoney 最小乘積生成樹