BSOJ1478 多邊形面積 凸包

2021-07-10 01:40:38 字數 1071 閱讀 7970

1478 -- 【模擬試題】多邊形面積

description

在直角座標系中,給出n個頂點的座標,求這n個點所圍成的圖形的周長和面積。

注意:(1)如果所有點共線則周長按直線的長度計算,面積視為0;

(2)如果部分點共線按共線後的多邊形計算;

(3)所給出的n個頂點如果能圍成多邊形則均為凸多邊形。 

input

第一行輸入多邊形頂點個數n(3 <= n <= 100);

接下來n行每行輸入乙個頂點座標x,y,x,y均為整數且座標的絕對值均不超過100。

output

兩行,即多邊形的周長和面積(均保留兩位小數)。

sample input

40 0

1 00 1

1 1sample output

4.00

1.00

source

xinyue

求乙個凸包,再用有向梯形算凸包面積,邊長直接暴力計算再累加~

注意判斷是不是一條直線

#include#include#include#includeusing namespace std;

struct point

w[10005];

int n;

int stk[10005]=,top=0;

point low;

bool str=1;

double x1,x2,y1,y2;

bool cmpp(point a,point b)

if(judge==0&&squ(a.x-low.x)+squ(a.y-low.y)1&&cross(w[stk[top]],w[i],w[stk[top-1]])<=0)top--;

stk[++top]=i;

} }double area=0;

double len=0;

void cal()

for(int i=1;itop-1,不是1-->top否則加錯..

printf("%0.2lf\n%0.2lf",len,area/2);

}int main()

Cows POJ 3348 凸包 多邊形面積

題目大意 給出n個點,讓你求凸包的面積 50的值是多少 解題思路 先求出凸包,然後根據多邊形面積公式求出公式 多邊形面積公式 for int i 0 i1 i ans ch i x ch i 1 y ch i 1 x ch i y ans abs ans 2.0 ac include include...

觀星(計算幾何 凸包 多邊形面積)

對於平面上有n個點分為三類,要求尋找乙個三角形,三個頂點分別屬於這三類,求解最大面積。n 3000 首先考慮到o n 2 o n 2 o n2 的列舉,然後對於另外一種考慮這個點的位置,顯然它應該在凸包上,因為我們相當於要尋找距離某個直線最遠的點,所以相當於用乙個直線來截。然後考慮在凸包上二分,首先...

多邊形面積

點積 a b x1 x2 y1 y2 a b cos 點積的結果是乙個數值 叉積 a b x1 y2 x2 y1 a b sin 叉積的結果也是乙個向量,是垂直於向量a,b所形成的平面,如果看成三維座標的話是在 z 軸上,上面結果是它的模。三角形的面積 向量a和 向量b的叉積的絕對值表示 以 向量a...