玄学卡常???
查看原帖
玄学卡常???
93701
Morgen_Kornblume楼主2021/11/17 21:33
void dfs1(int x){
	siz[x]=1;//fa[x]=fa_;dep[x]=dep_;
	int y,inmax=0;
	for(re int i=head[x];i;i=nxt[i]){
		y=to[i];
		if(y==fa[x])continue;
		fa[y]=x;dep[y]=dep[x]+1;
		dfs1(y);
		if(siz[y]>inmax)inmax=siz[y],heavy[x]=y;
		siz[x]+=siz[y];
	}
}

if(siz[y]>inmax)inmax=siz[y],heavy[x]=y;

改为

if(siz[y]>=inmax)inmax=siz[y],heavy[x]=y;

加一个等于号就过了?

我是 mlog3(n)mlog^3(n) 的双堆算法。

不加,最后一个点不开 O2 T,开了 O2 M。

加上,最后一个点开了 O2 时内存少了一半???

2021/11/17 21:33
加载中...