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

2021-10-19 13:09:17 字數 481 閱讀 4296

對於平面上有n個點分為三類,要求尋找乙個三角形,三個頂點分別屬於這三類,求解最大面積。

n<=3000

首先考慮到o(n

2)

o(n^2)

o(n2

)的列舉,然後對於另外一種考慮這個點的位置,顯然它應該在凸包上,因為我們相當於要尋找距離某個直線最遠的點,所以相當於用乙個直線來截。

然後考慮在凸包上二分,首先如果直接求凸包,斜率不是單調的,沒法二分,或許可以三分。我們可以分別求出上凸包和下凸包,分別找到最遠點,上凸包的斜率單增,下凸包的斜率單減,所以可以直接二分。

此時就不用極角排序了,直接按照橫座標為第一關鍵字,縱座標為第二關鍵字排序即可,然後利用單調棧求解。

需要注意乙個細節,就是橫座標相等的點只需要保留縱座標最大或最小的,所以需要判斷一下

然後考慮求解面積,多邊形面積需要利用叉積求解,就是前後相鄰點叉積之和,但是這樣求出來的可能是負的,所以需要加上絕對值。

計算幾何 多邊形面積

彙總篇 計算幾何彙總 規定頂點逆時針方向的多邊形面積為正 取原點0 0,0 s a,b,c,d s o,a,b s o,b,c s o,c,d s o,d,a 圖中o在外部,obc,ocd,oda 全部是正的,加起來構成了5變形 obcda 的面積,但 oab是負面積,因此最後剛好等於 abcd 的...

BSOJ1478 多邊形面積 凸包

1478 模擬試題 多邊形面積 description 在直角座標系中,給出n個頂點的座標,求這n個點所圍成的圖形的周長和面積。注意 1 如果所有點共線則周長按直線的長度計算,面積視為0 2 如果部分點共線按共線後的多邊形計算 3 所給出的n個頂點如果能圍成多邊形則均為凸多邊形。input 第一行輸...

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...