@[ForMyLove](/user/952621) WA32pts
by ForMyLove @ 2023-04-17 23:43:00
问题在这里
```
for (int i=0;i<edge[u].size();i++){
v=edge[u][i];
if (!dfn[v]){ tarjan(v); low[u]=min(low[u],low[v]); }
else if (ins[v]){ low[u]=min(low[u],dfn[v]); }
}
```
这里的 $v$ 是全局变量,递归到下一层之后会被下一层修改,再回溯回来更新答案的时候就会错。
改成 `int v=edge[u][i];` 就好了。
~~感谢 lz 的代码让我发现我 Tarjan 也写假了。~~
by H_Kaguya @ 2023-04-20 07:13:36
@[H_Kaguya](/user/663405) 谢谢您,关注给您了
by ForMyLove @ 2023-04-20 23:43:52
@[H_Kaguya](/user/663405) ~~您拯救了我~~
by ForMyLove @ 2023-04-20 23:45:56
@[ForMyLove](/user/952621)
我表示直接 `for (auto& x:edge[u])`
by ylh1230i @ 2023-05-12 18:26:22
@[ylh1230i](/user/914079) 一开始是这样的,后来害怕这里出问题于是改掉了(捂脸)
by ForMyLove @ 2023-05-12 23:31:10