一類凸包題目(未完)

2021-06-10 01:14:17 字數 1694 閱讀 9630

注:《黑書》p392中有講:對於通常求的凸包,輸出的凸包是包括所有可能的共線點還是不包括任何共線點(即只有極點)這是取決於題目的題目要求的。在下面的程式中都會將去共線點的**加上,視題目刪除。

1、   簡單凸包,求凸包的周長和圓周

graham-scan 演算法

#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 1005

#define eps 1e-6

#define pi acos(-1.0)

struct point

p[maxn],sta[maxn];

int top;

int fabs(double d)

double x_multi(point p1,point p2,point p3)

double dis(point p1,point p2)

bool cmp(point a,point b)//按極角排序

void graham(int n)

sta[++top]=p[i];

}

}int main()

p[maxn],sta[maxn];

int top;

int fabs(double d)

double x_multi(point p1,point p2,point p3)

double dis(point p1,point p2)

bool cmp(point a,point b)

void graham(int n)

sta[++top]=p[i];

}

}int main()

struct point

}p[maxn],pp[maxn],sta[maxn];

int top;

double x_multi(point p1,point p2,point p3)

double dis(point p1,point p2)

bool cmp(point a,point b)

bool onsegment(point p1,point p2,point p3)

void graham(int n)

sta[++top]=p[i];

}

}int main()

struct point

}p[maxn],sta[maxn];

int top;

double x_multi(point p1,point p2,point p3)

double dis(point p1,point p2)

bool cmp(point a,point b)

void graham(int n)

sta[++top]=p[i];

}

}int main()

/*旋轉卡殼*/

/*sta[top+1]=sta[0];

for(i=0,j=1;i<=top;i++)

*/printf("%.0lf\n",ans*ans);

} return 0;

}

Leetcode Sum一類題目

leetcode裡有一類這樣的題目,給定乙個陣列和乙個target值,尋找陣列中的幾個數相加等於target值。1 two sum,尋找陣列中兩個數相加等於target值 2 three sum,尋找陣列中三個數相加等於target值 3 four sum,尋找陣列中四個數相加等於target值 注...

物件導向(一) 類

class class nameobject name 乙個或者幾個物件的標識 class crectanglerect 是crectangle型別的物件的名稱 crectangle 和 rect的關係就像 int 和變數a的物件一樣 int 型別名 a 物件名,變數 如果物件需要呼叫類裡面的函式,...

一 類與物件

物件的儲存細節 程式啟動,先把程式載入到 區。系統自動建立乙個類物件,載入類中的物件方法列表。當通過乙個類建立物件時,先在堆中開闢一塊儲存空間給物件p,再初始化物件的各屬性為0,最後返回乙個位址儲存到棧中 區域性變數接收 物件的第0個屬性是系統建立的isa指標,指向建立該物件的類。類方法只能類呼叫,...