玄学问题
  • 板块CF1540B Tree Array
  • 楼主qzmoot
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/9/20 16:06
  • 上次更新2024/9/20 18:51:49
查看原帖
玄学问题
774854
qzmoot楼主2024/9/20 16:06

这道题目的dfs处理,我是这么写的:

void dfs(int u,int fa)
{
	dep[u]=dep[fa]+1;
	for(int i=1;(1<<i)<=dep[u];i++)
		f[u][i]=f[f[u][i-1]][i-1];
	for(auto v:a[u])
	{
		if(v==fa)
			continue;
		f[v][0]=u;
		dfs(v,u);
	}
}

交了之后显示wa on #4

我在学习题解之后,按照题解的dfs尝试,为啥就对了?

void dfs(int u,int fa)
{
	f[u][0]=fa,dep[u]=dep[fa]+1;
	for(int i=1;i<20;i++)
		f[u][i]=f[f[u][i-1]][i-1];
	for(auto v:a[u])
	{
		if(v==fa)
			continue;
		dfs(v,u);
	}
}
2024/9/20 16:06
加载中...