BZOJ3731 Gty的超級妹子樹(樹上分塊)

2021-08-17 11:01:06 字數 1180 閱讀 3820

我是超連結

因為這題太神而我太sb的緣故,調了好久還是re?棄了棄了。

說個思路吧,下面的**估計也就是個手殘我就是懶得調了打我啊

斷開乙個節點與父節點的連邊時,如果這個點是所在塊的根節點,直接斷掉就行

如果這個點不是所在塊的根節點,那麼就要把這個塊**,這個點以及在塊中的子樹都**到新的塊中

然後是此題卡記憶體 靜態不用想了 開vector吧

#include 

#include

#include

#include

#include

using namespace std;

const int n=200005;

const int m=400005;

int nw,tot,nxt[m],point[m],v[m],tot1,nxt1[m],point1[m],v1[m],pos[m],ans,block,cnt,a[m],f[m],visk[m];

bool ml[n];

struct block

void del(int

x) void change(int

x,int

y) int qurry(int

x)

}b[m];

inline int

read()

void addline(int

x,int

y)void addline1(int

x,int

y)void dfs(int

x,int fa)

void findk(int

x,int

y)void find(int

x,inty)}

void push(int

x)void dele(int

x,int fa,int cnt,int gd)

void dle(int

x)int main()

for (int i=1;i<=n;i++) a[i]=read();

block=sqrt(n);nw=1;visk[0]=1;

dfs(1,0);m=read();

while(m--)

else

}

}

}}

BZOJ4458 GTY的OJ(樹上超級鋼琴)

點此看題面 大致題意 給你一棵樹,讓你求出每乙個節點向上的長度在 l,r 範圍內的路徑權值和最大的 m 條路徑的權值總和。此題的數列版本,就是比較著名的 bzoj2006 noi2010 超級鋼琴一題了。其實那道題目的思想,完全也可以套到這道題目上。當然,如果你比較強大,寫主席樹等玄學演算法 資料結...

bzoj3720 Gty的妹子樹

我們可以樹上分塊,詳見我部落格中雜文下的根號演算法題庫 然後每個塊維護降序,對於整一塊在子樹內的就可以二分,其餘部分暴力。include include include include define fo i,a,b for i a i b i using namespace std const i...

bzoj3744 Gty的妹子序列

time limit 20 sec memory limit 128 mb submit 967 solved 293 submit status discuss 我早已習慣你不在身邊,人間四月天 寂寞斷了弦。回望身後藍天,跟再見說再見 某天,蒟蒻autumn發現了從 gty的妹子樹 bzoj372...