悬赏1关注,tarjan模板题求助

P2863 [USACO06JAN] The Cow Prom S

@[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


|