希望这个帖子可以帮助到正在debug的你
查看原帖
希望这个帖子可以帮助到正在debug的你
374291
OldPan楼主2021/5/3 20:58

下面的Ans不能开全局

void dfs(int u, int pa, int Ans){
	if(u==target){
		if(!Ans) puts("No solution");
		else printf("%d", Ans);
		exit(0);
	}
	if(u!=start&&noden[u]>1&&u<=n){
		if(!Ans) Ans=u;
		else Ans=min(Ans, u); 
	}
	for(int i=g2.firstE[u]; i; i=g2.e[i].next){
		int v=g2.e[i].to;
		if(v==pa) continue;
		dfs(v, u, Ans);
	}
}

憨态可掬的我把Ans写到了全局, 到LOJ上A了一半数据, WA了一半. de了一整个下午都没发现(一直都以为是Tarjan写错了)

因为写到全局, 可能会Ans会被路径外的割点更新...

希望能够帮得到正在debug的你~~

2021/5/3 20:58
加载中...