HDU6300 極角排序

2021-09-13 04:09:46 字數 702 閱讀 2165

1.題目鏈結。題目大意,給3n個點,把這3n個點劃分成n個三角形。題目資料保證存在一組解。輸出每個三角形所使用的點的下標。

2.找到左下角(其他地方也行)的乙個點,然後以這個點為極角排序,極角排序之後相鄰的三個點劃分成一組即可。

#include #define maxn 4005

#pragma warning(disable:4996)

typedef long long ll;

using namespace std;

const double eps = 1e-8;

struct point

point(int _x, int _y)

};point p[maxn];

int pos;

double cross(double x1, double y1, double x2, double y2)

double compare(point a, point b, point c)//計算極角

bool cmp(point a, point b)

int main()

} sort(p + 1, p + 3 * n, cmp);

int cnt = 1;

for (int i = 0; i < 3 * n; i++)

}} return 0;

}

極角排序詳解

極角排序詳解 名詞釋義 在平面內取乙個定點o,叫極點,引一條射線ox,叫做極軸,再選定乙個長度單位和角度的正方向 通常取逆時針方向 對於平面內任何一點m,用 表示線段om的長度 有時也用r表示 表示從ox到om的角度,叫做點m的極徑,叫做點m的極角,有序數對 就叫點m的極座標 四種極角排序 詳解 s...

極角排序理解

這裡我們說的極角排序,指的是對於二維座標中的點,當然也可以說是向量。極角排序的用途一般是預處理二維平面中的點,使之變得相對有序,接下來在有序的條件小用o n 或者o nlogn 處理,而不是無序條件下的o n n 的列舉。應用鏈結 關於叉積 叉積 0是指兩向量平行 重合 叉積 0,則向量a在向量b的...

HDU 5738 Eureka 極角排序,注意讀題

題目大意 平面給n 1000個座標,每個座標值範圍在 1e9,1e9 之間 問,隨便取一些點集,使得點集內的點,在一條直線上,有多少種方案。方法 按照x,y座標排序。x相同,y從小到大。這樣,我們從最左邊的點開始,讓這個點固定下來,求這個點必須取的情況下,在這個點的右邊 和上方 的直線中有多少方案。...