思路:1.一共n個點,對於每乙個點我們都可以將它作為頂點,那麼此點和其它n-1個點就會組成n-1個向量;
2.n-1個向量中,我們任意選取兩個向量都可以滿足「選取三塊石頭」這個條件,但是我們現在的目標是面積最小,因此我們需要對這n-1個向量進行極角排序;
(證明請參考
3.a ,b
,c
a,b,c
a,b,
c三點圍城的平面區域面積為s=a
b⃗×a
c⃗
2s=\frac\times\vec}
s=2ab×
ac,即ax∗
by−a
y∗bx
a_x*b_y-a_y*b_x
ax∗by
−ay
∗bx
;4.遍歷每一對排序後的相鄰向量,維護歷史面積最小值;
//複雜度約等於o(n
2logn
)o(n^2\log)
o(n2
logn
)**:
#include
using
namespace std;
typedef
long
long ll;
const
int maxn =
5005
;ll x[maxn]
, y[maxn]
, ans = llong_max;
struct vec
} v[maxn]
;#define a_cross(a, b) abs(a.x * b.y - a.y * b.x)
intmain()
;}sort
(v, v + tmp)
;for
(int j =
1; j < tmp;
++j)
}printf
("%.3f"
,0.5
* ans)
;return0;
}
L3 021 神壇 極角排序
l3 021 神壇 30 分 在古老的邁瑞城,巍然屹立著 n 塊神石。長老們商議,選取 3 塊神石圍成乙個神壇。因為神壇的能量強度與它的面積成反比,因此神壇的面積越小越好。特殊地,如果有兩塊神石座標相同,或者三塊神石共線,神壇的面積為0.000。長老們發現這個問題沒有那麼簡單,於是委託你程式設計解決...
L3 021 神壇 計算幾何
l3 021 神壇 30 分 在古老的邁瑞城,巍然屹立著 n 塊神石。長老們商議,選取 3 塊神石圍成乙個神壇。因為神壇的能量強度與它的面積成反比,因此神壇的面積越小越好。特殊地,如果有兩塊神石座標相同,或者三塊神石共線,神壇的面積為0.000。長老們發現這個問題沒有那麼簡單,於是委託你程式設計解決...
L3 021 神壇 (30 分 計算幾何
在古老的邁瑞城,巍然屹立著 n 塊神石。長老們商議,選取 3 塊神石圍成乙個神壇。因為神壇的能量強度與它的面積成反比,因此神壇的面積越小越好。特殊地,如果有兩塊神石座標相同,或者三塊神石共線,神壇的面積為0.000。長老們發現這個問題沒有那麼簡單,於是委託你程式設計解決這個難題。輸入在第一行給出乙個...