此题已卡dfs
查看原帖
此题已卡dfs
120438
Lacrymabre楼主2021/11/28 18:53

不管您写的是树剖还是LCA,请使用bfs

数据中有一条巨大长臭链,dfs会爆栈

void bfs(ll now,ll fa){
	queue<ll>s;
	dep[now]=1,f[now][0]=fa;
	s.push(now);
	while(!s.empty()){
		now=s.front();
		s.pop();
		for(int i=from[now];i;i=net[i]) {
			if(to[i]!=f[now][0]) {
				s.push(to[i]),f[to[i]][0]=now;
				dep[to[i]]=dep[now]+1;
			}
		}
	}
}

2021/11/28 18:53
加载中...