題意:
給出凸包上的點,其中乙個點是(0,0),要求從(0,0)按照逆時針輸出所有點。
題解:不能有極角排序,因為多邊形可能在原點的左側。
view code
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 78#define n 2222222
9#define eps 1e-3
10//
不能直接極角排序,因為圖形可能全部在原點左側
11using
namespace
std;
1213
struct
po14
p[n];
1718
int n=1;19
20 inline double cross(po &a,po &b,po &c)
2124
25 inline int doublecmp(double
x)26
3132 inline bool
cmp(po a,po b)
3336
37 inline void
go()
3845 sort(p+2,p+1+n,cmp);
46for(int i=1;i<=n;i++) printf("
(%.0lf,%.0lf)\n
",p[i].x,p[i].y);47}
4849
intmain()
50
poj 2007 極角排序
極角排序有四種方法,我一開始就是先算出極角來,然後進行排序,可交上去卻是wa,現在還沒有搞,後面用另一種還是錯了,最後用了這種才過的!如下 include include include include include using namespace std const int maxn 55 st...
poj2007凸包graham逆時針輸出
題意 給出一組點,包含原點,求凸包,並從原點開始按照逆時針方向輸出 include include include define max 1000 using namespace std struct points points p max int n,l,res max top bool cmp ...
叉積進行極角排序
對於上圖,給定兩個向量求兩個向量叉積,可知叉積與兩向量夾角 有關,當 為負數時叉積為負,反之為正。有乙個被稱為右手定則的方法可以在這裡用於判斷 的正負,四指方向為向量旋轉方向,拇指指向為叉積方向,當拇指指向上方時為 為正,反之為負。想想sort函式,當我們要對sort進行從大到小順序的排列時 boo...