【凸包 Graham法 極角排序】poj 2007 Scrambled Polygon
Link:http://poj.org/problem?id=2007
Graham法求凸包(O(Nlog2N))
/* 極角排序 */
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 100;
const double eps = 1e-6;
struct Point
{
double x,y;
};
Point a[N];
//是否嚴格左轉,共線不算(叉乘)
double xmult(Point a,Point b,Point c) //(ca)×(cb)
{
return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);
}
// sort排序函式
bool cmp(const Point &a, const Point &b)//逆時針排序
{
Point origin;
// 設定原點
origin.x = origin.y = 0;
return xmult(origin,b,a)<eps;
}
int main()
{
int n=0;
while(scanf("%lf%lf",&a[n].x,&a[n].y)!=EOF)
++n;
// 極角排序,第一個空過去
sort(a+1,a+n,cmp);
for(int i=0; i<n; ++i)
printf("(%.0lf,%.0lf)\n",a[i].x,a[i].y);
return 0;
}
相關文章
- 【凸包 Graham法 點集排序】poj 1113 Wall排序
- POJ 1113-Wall(凸包-Graham演算法)演算法
- HDU 4946 Area of Mushroom(凸包)OOM
- POJ 1584-A Round Peg in a Ground Hole(計算幾何-凸包、點到線段距離)
- 求多邊形凸包(線性演算法)--陳氏凸包演算法--演算法
- 怎麼凸顯主題?極思維
- POJ-2299 Ultra-QuickSort-分治法排序求交換速度UI排序
- HDU 3685 Rotational Painting(凸包+重心)AI
- poj 1094 拓撲排序排序
- poj1094 拓撲排序排序
- SGU 277 Heroes(動態凸包維護)
- polygonGo
- 5534. 可見點的最大數目(C++)---極角排序 + 滑動視窗 解題C++排序
- POJ 3249-Test for Job(拓撲排序&&DP)排序
- 斜率優化(凸包優化)DP問題acm優化ACM
- HDU 4667 Building Fence(求凸包的周長)UI
- 排序:交換排序——氣泡排序法排序
- 快速排序法排序
- 交換排序法排序
- shell排序法排序
- POJ3187Backward Digit Sums[楊輝三角]Git
- POJ1094[有向環 拓撲排序]排序
- 計算幾何(一):凸包問題(Convex Hull)
- [USACO5.1] 圈奶牛Fencing the Cows /【模板】二維凸包
- 機器學習中牛頓法凸最佳化的通俗解釋機器學習
- (四)桶排序法排序
- 排序法(轉載)排序
- 氣泡排序法排序
- 選擇排序法排序
- poj2486Apple Tree[樹形揹包!!!]APP
- 《Maquette》Polygon 評測:通過現代愛情故事領略不同視角的日常生活Go
- EWEBS極速版 凸顯應用加速和安全管控兩大亮點Web
- 與 Rust 勾心鬥角 · 包圍球Rust
- P6810 「MCOI-02」Convex Hull 凸包 題解
- 拓撲排序 POJ2367Genealogical tree[topo-sort]排序
- 凸優化優化
- 「管理數學基礎」3.1 凸分析:凸集與凸集分離定理、Farkas引理
- 選擇法和冒泡法排序介面排序