疑惑
查看原帖
疑惑
601245
I_am_zhima楼主2023/7/22 08:30

第一份过不了,第二份过了。

de[1]=1;
void dfs(int u,int fath){
	/*if(u!=1){
		w[u][0]=e[u][fath].w,
		de[u]=de[fath]+1,
		f[u][0]=fath;
		for(re int i=1;f[u][i-1];i++)
			f[u][i]=f[f[u][i-1]][i-1],
			w[u][i]=max(w[u][i-1],w[f[u][i-1]][i-1]);
	}*/
	
	for(auto i:e[u])
		if(i.v!=fath){
			w[i.v][0]=i.w,
			de[i.v]=de[u]+1,
			f[i.v][0]=u;
			for(re int j=1;f[i.v][j-1];j++)
				f[i.v][j]=f[f[i.v][j-1]][j-1],
				w[i.v][j]=max(w[i.v][j-1],w[f[i.v][j-1]][j-1]);
			dfs(i.v,u);
		}
}
de[1]=1;
void dfs(int u,int fath){
	if(u!=1){
		w[u][0]=e[u][fath].w,
		de[u]=de[fath]+1,
		f[u][0]=fath;
		for(re int i=1;f[u][i-1];i++)
			f[u][i]=f[f[u][i-1]][i-1],
			w[u][i]=max(w[u][i-1],w[f[u][i-1]][i-1]);
	}
	
	for(auto i:e[u])
		if(i.v!=fath){
			/*w[i.v][0]=i.w,
			de[i.v]=de[u]+1,
			f[i.v][0]=u;
			for(re int j=1;f[i.v][j-1];j++)
				f[i.v][j]=f[f[i.v][j-1]][j-1],
				w[i.v][j]=max(w[i.v][j-1],w[f[i.v][j-1]][j-1]);*/
			dfs(i.v,u);
		}
}
2023/7/22 08:30
加载中...