poj 1177 區間樹求矩形周長並

2021-07-10 04:35:21 字數 777 閱讀 8232

題意:

在平面上給若干矩形,求它們的周長並。

分析:       用區間樹維護x軸上區間的一些覆蓋屬性。區間樹維護的是一些區間的性質,構造為build(l,mid),build(mid,r),線段樹維護的是一些點的性質,構造為build(l,mid),build(mid+1,r)。區間樹經常被視為線段樹,但個人認為因為點線有所區分,故考慮問題時還是把他們區別對待比較好,雖然它們的核心思想如lazy是一樣的。

**://poj 1177

//sep9

#include #include using namespace std;

const int maxn=10012;

int n;

struct line

line[maxn];

struct node

segtree[maxn*4];

int x[maxn];

bool cmp(line a,line b)

if(segtree[i].l+1==segtree[i].r)else

}void update(int i,line e)

if(e.x2<=segtree[i*2].rf) update(i*2,e);

else if(e.x1>=segtree[i*2+1].lf) update(i*2+1,e);

else

pushup(i);

}int main()

{ scanf("%d",&n);

int t=0;

for(int i=0;i

POJ 1177 矩形周長並

參考部落格 方法 把矩形分成橫線和豎線去處理,可知是完全相同的操作,我們來講下怎麼算出橫線部分,豎線部分就是照搬即可。將橫線儲存在乙個表中,按橫線所處的豎直位置排序 公升序 另外每條橫線帶乙個標記值,原矩形的下線為1,上線為 1 對應過去就是插入線段和刪除線段 從低到高掃瞄橫線,沒掃到一條橫線就能計...

Poj1177 求矩形並的輪廓周長

題意 給出多個矩形,求這些矩形所覆蓋圖形的周長。可用線段樹來做,兩種方法 1 分別對x和y方向離散化後做線段樹,求出各方向上的輪廓長 2 對乙個方向上的座標進行離散化,用另一維進行掃瞄 1 覆蓋的線段長度 2 不相邊的線段數 3 該節點表示的區間兩端點是否被覆蓋 用於合併線段 code includ...

POJ 2104 區間第k大 主席樹(模板)

查詢區間範圍內,第 k kk 大的數 按照數列順序依次加入,構建可持久化線段樹 主席樹 由於線段樹的可減性,能夠得到對應區間範圍內的線段樹 主席樹的模板題了 int cnt,root maxn a maxn struct nodet maxn 40 vector int v intgetid int...