題目描述
給定n個點求平面最遠點對
n<=50000
題解
嘛。。。自己想練練手才寫上來的。。。
不過**沒問題的啦~
就是像我在計算幾何學習筆記
中說的一樣
先求凸包再旋轉卡殼求就行了
複雜度nlogn
【資料可以再大一點的2333】
**
//by 減維
#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define db double
#define inf 1<<30
#define maxn 500005
#define eps 1e-8
using
namespace
std;
struct
nodepoi[maxn],sta[maxn];
bool cmp(node x,node y)
bool cm2(node x,node y)
node
operator - (node x,node y);}
db operator * (node x,node y)
db dis(node x,node y)
intn,top;
db mx;
void
solve()
}int
main()
int tt=top;
sort(poi+1,poi+n+1
,cm2);
sta[++top]=poi[2
];
for(int i=3;i<=n;++i)
top--;
solve();
printf(
"%.5lf
",mx);
return0;
}
POJ2187 旋轉卡殼求平面最遠點對
分類 計算幾何 2013 02 12 15 23 62人閱讀收藏 舉報旋轉卡殼可以用於求凸包的直徑 寬度,兩個不相交凸包間的最大距離和最小距離等。深度學習旋轉卡殼這裡 題目 beauty contest cpp view plain copy include include include usin...
poj 2187 旋轉卡殼(平面上最遠點對)
題意 給定二維平面上不超過50000個點,求最遠點對距離的平方。思路 由資料量來判斷直接列舉會超時。注意到最遠距離點對必出現在這些點的凸包上,所以可以先求出凸包,然後在凸包上列舉。此法的最壞情況複雜度仍然是n 2的,但是可以ac這道題了。在複雜度意義下的優化是旋轉卡殼 參考 如果qa,qb是凸包上最...
尋找最遠點對(凸包求解)
td走廊裡有一關 勇闖梅花樁 水面上稀稀落落地立著幾根柱子。nova君自認為輕功不錯,覺得可以在任意兩根柱子之間跳躍,現在他想挑戰一次跨越距離最遠的兩根柱子。請問,最遠距離是多少?由於木樁以橫縱座標形式給出,為了計算方便,避免求平方根,答案只需給出距離的平方即可 多組測試資料 組數不超過10 對於每...