bzoj1593 預定旅館 線段樹維護連續區間

2022-05-31 07:42:08 字數 1108 閱讀 5006

題解:這題非常經典啊似乎。。經典模型要記住啊。。

對於每個節點維護該區間裡的最大的連續區間,然後我們就可以logn遞迴找最前面的一段。

那就維護mx(無限制),lmx(必須從左邊開始),rmx(必須從右邊開始)。

**:

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;910

const

int n=50010;11

intn,m,tl;

12struct

trnodet[2*n];

1516

int minn(int x,int y)

17int maxx(int x,int y)

1819

int bt(int l,int

r)20

32return

x;33}34

35void pd(int

x)36

4546

void upd(int

x)47

5657

void change(int x,int l,int r,int

d)58

61int lc=t[x].lc,rc=t[x].rc,mid=(t[x].l+t[x].r)/2;62

if(r<=mid) change(lc,l,r,d);

63else

if(l>mid) change(rc,l,r,d);

64else

6569

upd(x);70}

7172

int query(int x,int

len)

7383

return0;

84}8586

intmain()

87105

else

106110

}111

return0;

112 }

bzoj1593 預定旅館 線段樹維護連續區間

題解 這題非常經典啊似乎。經典模型要記住啊。對於每個節點維護該區間裡的最大的連續區間,然後我們就可以logn遞迴找最前面的一段。那就維護mx 無限制 lmx 必須從左邊開始 rmx 必須從右邊開始 1 include2 include3 include4 include5 include6 incl...

刷題總結 旅館(bzoj1593線段樹)

奶牛們最近的旅遊計畫,是到蘇必利爾湖畔,享受那裡的湖光山色,以及明媚的陽光。作為整個旅遊的策劃者和負責人,貝茜選擇在湖邊的一家著名的旅館住宿。這個巨大的旅館一共有n 1 n 50,000 間客房,它們在同一層樓中順次一字排開,在任何乙個房間裡,只需要拉開窗簾,就能見到波光粼粼的湖面。貝茜一行,以及其...

BZOJ 4756 線段樹合併(線段樹)

思路 1.最裸的線段樹合併 2.我們可以觀察到子樹求乙個東西 那我們直接dfs序好了 入隊的時候統計一下有多少比他大的 出的時候統計一下 減一下 搞定 線段樹合併 by siriusren include include include using namespace std const int n...