下面的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的你~~