單調鏈凸包

2021-07-03 01:11:39 字數 679 閱讀 6093

1

monotone chain convex hull(單調鏈凸包)演算法偽**:2//

輸入:乙個在平面上的點集p3//

點集 p 按 先x後y 的遞增排序4//

m 表示共a[i=0...m]個點,ans為要求的點;

5structp6

14 }a[m+10],ans[m+10

];15

//判斷第三點在這個直線的左側還是右側

16//

當judge(), 的返回值小於等於0,說明在右側,我們一直要找在直線右側的點

17double

judge(p a, p b,p c)

1821

//構建下凸包,從左跑到右,由下面通過

22int k1=0;23

for(int i=0; i//

下凸包24

29 ans[k1++]=a[i];30}

31//

構建上凸包,從右到左,由上面通過

32int k2=k1;

33for(int i=m-1; i>=0; i--)//

上凸包34

39 ans[k1++]=a[i];40}

41 k1--;//

減去起點,因為起點進去了兩次;

**

hdu 5033 單調棧 凸包

將人看成高度為 的樓,與樓混在一起按照橫座標排序,用單調棧正著掃一遍,再反著掃一遍,分別求出豎直線兩側的高度 出棧的條件 當前樓的高度比棧頂的樓高 為了維護凸包的性質,若棧頂和之前樓的斜率大於棧頂和當前樓的斜率 均為絕對值 出棧 如果當前樓是人,向前出棧直至找到棧頂樓與人夾角大於之前的樓與人的夾角 ...

查稅 斜率優化 單調佇列維護凸包 分塊 )

id3167 有n個辦公室,m個操作,依次讀入 type 如果type為1 接著讀入 t k z s 表示乙個公司於t時刻進駐k辦公室,每天盈利為z,其一開始有s元。若k位置本有別的公司,別的公司會被覆蓋。如果type為2 接著讀入t b 表示於t時刻,你要找出區間 a,b 內,最有錢的公司的錢數。...

BZOJ3348 Cows 凸包 凸包面積

題目鏈結 題意 求凸包,求面積,然後給面積除以50,向下取整。用的andrew演算法,即跑兩次,先求出下凸包,然後再求出上凸包。求面積時候應該用凸包陣列求,結果寫成了原來的點的陣列,調了20多分鐘。弱智 2 telekinetic forest guard include include inclu...