bzoj 4317 Atm的樹 樹分治

2021-07-10 21:35:08 字數 720 閱讀 1262

一道比較經典的樹分治把。。

二分答案,然後在按照點分治後得到的重心樹中找距離<=d的點的數量即可。時間複雜度o(nlog^3n)。

ac**如下:

#include#include#include#include#define inf 1000000000

#define n 30005

#define m 1200005

using namespace std;

int n,k,m,cnt,rt,tot=1,all,pnt[m],edg[m],len[m],nxt[m];

int a[m],f[n],sz[n],pl[n],pr[n],ql[n],qr[n];

struct graph

}g1,g2;

void get_rt(int x,int fa)

} f[x]=max(f[x],all-sz[x]); if (f[x]>1;

if (a[mid]<=z) l=mid; else r=mid;

} return l-x+1;

}int check(int x,int y)

return tmp;

}int main(){

scanf("%d%d",&n,&k); k++; int i,x,y,z;

for (i=1; i>1;

if (check(i,mid)

by lych

2016.3.31

BZOJ 3306 樹 樹鏈剖分

和bzoj 3083比就是弱化版了。樣例都有點像?include include using namespace std const int n 100005,m n 3,inf 0x7fffffff int read int next m to m head n sz n son n top n ...

BZOJ 2836 魔法樹 樹鏈剖分

40 1 1 22 3 4add 1 3 1 query 0 query 1 query 233 2樹鏈剖分線段樹裸題。值得注意的是維護一下出棧序,這樣子樹就是該點到出棧 1的位置。在lca的過程中直接查詢 維護即可 下面是 include include include include inclu...

樹鏈剖分 BZOJ3589 動態樹

time limit 30 sec memory limit 1024 mb submit 543 solved 193 submit status discuss 別忘了這是一棵動態樹,每時每刻都是動態的.小明要求你在這棵樹上維護兩種事件 事件0 這棵樹長出了一些果子,即某個子樹中的每個節點都會長...