動態維護凸包

2021-06-03 14:07:00 字數 673 閱讀 8906

依次插入n個點,詢問凸包面積。

利用granham思想,維護凸包,水平序要維護兩個凸殼,比較麻煩,所以用極角序,每次查入用平衡樹維護極角離他最近的點,此時到雙向鍊錶上開始模擬granham雙向刪點,直到無法刪為止,因為每個點至多刪一次,所以是nlogn的複雜度。面積維護用叉積即時維護即可。

依次插入n個半平面,詢問半平面交面積。

與上題類似,維**向量的極角,雙向刪半平面(當相鄰一半平面兩交點均在此半平面外即刪),實現更複雜,我還沒實現。

#include #include #include #include #include const int maxn=100005,oo=1073741819;

struct point

a[maxn],o;

int n,rt[maxn],r[maxn],l[maxn],id[maxn],ins[maxn],net[maxn];

long long sum,s[maxn],ans;

void left(int x)

void right(int x)

int cmp(int x,int k)

void cancel(int k)

}void origin()

void init()

}int main()

CF70D(動態凸包)

給出q 1e5 個詢問,每次在加上乙個點,維護凸包,或者詢問某個點是否在凸包內 在邊上也算 聽說可以用cdq做 但是並不會。我等蒟蒻只會用平衡樹做。首先,假設已經維護出了某個點按照極角排序的凸包,那麼對於加入的乙個點,我們首先要查詢它是在凸包內還是凸包外 這個功能也可以用於題目中的查詢 o表示極角排...

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

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