求问
  • 板块P1656 炸铁路
  • 楼主qwqSW
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/12 17:21
  • 上次更新2024/12/12 20:33:47
查看原帖
求问
1010629
qwqSW楼主2024/12/12 17:21

tarjan核心代码部分有两种写法都能过
一种是大于的

for(int i=h[u];i;i=e[i].nxt){
	int v=e[i].v;
	if(v==fa) continue;
	if(!dfn[v]){
		tar(v,u);
		low[u]=min(low[u],low[v]);
		if(low[v]>dfn[u]){
			ans[++cnt]={min(u,v),max(u,v),0};
		}
	}
	else if(v!=fa){
		low[u]=min(low[u],dfn[v]);
	}
}

一种是等于的

for(int i:G[u]){
	if(i==fa) continue;
	if(!dfn[i]){
		tarjan(i,u);
		low[u]=min(low[u],low[i]);
		if(low[i]==dfn[i]) Orin(u,i);
	}else low[u]=min(low[u],dfn[i]);
}

两个都能过 求问为什么

2024/12/12 17:21
加载中...