poj 3667 線段樹區間合併

2021-07-16 14:15:42 字數 799 閱讀 8490

題意:有很多房間,每次客人來住的時間要連續的房間,多次操作查詢。

分析:維護prefix和suffix陣列來表示一段區間連續的個數

具體實現詳見**:

#include#include#include#include#define lson   l , mid , rt << 1 

#define rson mid + 1, r, rt << 1 | 1

using namespace std;

const int maxn = 4e5 +20;

struct interxtree

void pushdown(int rt ,int k) }

void maintain(int rt ,int k)

void update(int l, int r, int v, int l, int r, int rt)

pushdown(rt , r - l + 1);

int mid = (l + r) >> 1;

if(l <= mid)

update(l, r , v, lson);

if(r > mid)

update(l, r , v, rson);

maintain(rt , r - l + 1);

} int query(int v, int l, int r, int rt)

}tree;

int main(void)

else

}else

}} return 0;

}

poj3667 線段樹(區間合併)

題意 有編號為1 n的n個房間,有兩種詢問 1.有人來訂連續的k間房,有的話返回第一間房的編號,否則返回0。2.有人退連續的從a開始的連續的k間房。1.該區間最大的連續空房數 2.該區間從最左邊起的最大的連續空房數 3.該區間從最右邊起的最大的連續空房數 根據以上三個資訊,每個非葉結點的資訊都可以由...

poj 3667 線段樹 區間合併

感想 沒有什麼說的了。越做線段樹越感覺自己水。這個我感覺自己就真坑了大家了。難的不會,簡單的也水不過了。哎,最近這是什麼情況啊!題目 題意 旅館有編號為1 n的房間,現在可能有m波人過了租房,每波人可能要定連續的d間房,如果有的話,編號盡量小,沒有的話就說0,也可能有d個人要退房,他們的房是連續的x...

線段樹區間合併poj3667

題意 1 a表示如果有長度為a的連續的空房間,則占用 2 a b表示清空 a,a b 1 的房間 思路 線段樹區間維護,除了考慮區間上最大空房間,還要維護左邊最大連續和右邊最大連續 include include include include using namespace std define ...