BZOJ 1251 序列終結者

2022-06-01 09:45:10 字數 1133 閱讀 4829

ac通道:

這題就是充分利用文藝平衡樹那題留下的心理陰影啊...

總之,我們已經知道平衡樹可以像線段樹一樣操作[非遞迴線段樹的感覺...],不過平衡樹支援神奇的翻轉操作...[這個見文藝平衡樹]

然後就是tag的下傳和向上更新了...一定要注意細節啊~什麼左子樹右子樹是不是為空,還是要仔細看一看的啦...

#include#include

#include

using

namespace

std;

inline

intin

()const

int maxn=100010

;struct

node

}s[maxn];

intrt,n,m;

void update(int

x)void push_down(int

x)

if(s[x].ad)

if(s[x].r)

s[x].ad=0

; }

}int build(int l,int

r)void zig(int

x)

s[y].l=s[x].r;

if(s[x].r) s[s[x].r].f=y;

s[x].r=y;s[y].f=x;

update(y),update(x);

}void zag(int

x)

s[y].r=s[x].l;

if(s[x].l) s[s[x].l].f=y;

s[x].l=y;s[y].f=x;

update(y),update(x);

}void splay(int x,int

gf)

else

else}}

if(!gf) rt=x;

}int find(int

k) }

}void add(int l,int r,int

k)void rev(int l,int

r)int ask(int l,int

r)int

main()

return0;

}

view code

bzoj 1251 序列終結者

題目在這裡 這應該是splay裸題了吧。對於每個節點儲存5個值,size,max,flag,lazy,val 分別表示這個節點的子樹大小,子樹的最大值,子樹是否有打過翻轉標記,子樹的增加的值,前面的所有都包括這個節點它自己 以及這個節點的當前值。對於一段區間 l,r 的詢問 修改,只需把l 1這個節...

bzoj1251 序列終結者

time limit 20 sec memory limit 162 mb submit 2971 solved 1188 submit status discuss 網上有許多題,就是給定乙個序列,要你支援幾種操作 a b c d。一看另一道題,又是乙個序列 要支援幾種操作 d c b a。尤其是...

BZOJ 1251 序列終結者

網上有許多題,就是給定乙個序列,要你支援幾種操作 a b c d。一看另一道題,又是乙個序列,要支援幾種操作 d c b a。尤其是我們這裡的某人,出模擬試題,居然還出了一道這樣的,真是沒技術含量 這樣,我也出一道題,我出這一道的目的是為了讓大家以後做這種題目有乙個 庫 可以依靠,沒有什麼其他的意思...