@[Rosmontis_](/user/174118) tarjan经典错误
```cpp
for(register int i=head[u];i;i=e[i].next)
{
if(!dfn[e[i].v])
{
tarjan(e[i].v);
low[u]=mn(low[u],low[e[i].v]);
}
//下面这一排错了,应该是dfn[e[i].v],因为可能有横叉边
if(!col[e[i].v]) low[u]=mn(low[u],low[e[i].v]);
}
```
by dingxingdi @ 2021-11-08 19:16:38
唔... ...谢谢大佬... ...
然而就算改了也不对呀。(依然60pts)
@[dingxingdi](/user/65190)
by Novaorbit @ 2021-11-08 19:20:10
@[Rosmontis_](/user/174118) 下面那个要写成else if
by dingxingdi @ 2021-11-08 19:25:11
@[dingxingdi](/user/65190) 已经 `if(!col[v])` 了,应该没有横向边吧
by 阿丑 @ 2021-11-08 19:25:25
@[Rosmontis_](/user/174118)
感觉是拓扑的问题。hack:
```plain
3 3
1 1 1
1 2
2 3
1 3
```
by 阿丑 @ 2021-11-08 19:34:33
@[Rosmontis_](/user/174118) 你真的认为你的最大路径是对的吗?
by wheneveright @ 2021-11-08 19:34:47
@[dingxingdi](/user/65190)
感觉就算没有else也没有什么影响啊。
因为在两个if之间没有任何操作,所以就算同一语句执行两遍对结果也该没有影响才对。
by Novaorbit @ 2021-11-08 19:36:38
@[wheneveright](/user/189351)
???
那。请问。哪里有问题啊?
by Novaorbit @ 2021-11-08 19:38:18
@[阿丑](/user/364963) 抱歉,确实。我的表达有点问题,应该是返祖边,low[]那里确实是要换成dfn的。topsort也有点问题,抱歉
by dingxingdi @ 2021-11-08 19:39:28
```cpp
nd[ze[i].v]+=nd[u];
```
这里
by wheneveright @ 2021-11-08 19:40:01