tarjan模板样例过不去求助/kk

P2194 HXY烧情侣

@[cyhyyds](/user/508316) Tarjan 为什么这么写啊 /fad 只有 to 在站中才和 dfn[to] 取 min 吧
by ClHg2 @ 2021-09-15 22:06:52


@[Calvincheng1231](/user/253946) 啊我都是这么写的啊/fad 改了也不对qwq
by cyhyyds @ 2021-09-15 22:11:00


@[cyhyyds](/user/508316) ans2 ✖️的时候会爆?
by ClHg2 @ 2021-09-15 22:14:28


@[Calvincheng1231](/user/253946) 样例过不了啊qwq
by cyhyyds @ 2021-09-15 22:24:06


@[cyhyyds](/user/508316) 三件事: 1. 你可以再仔细看一眼 `tarjan` 函数中更新 `low` 的语句,你会非常的震惊~ 1. 总费用不取模,只有方案数要取模;并且做乘法的时候要强转 long long(或者干脆就开 long long),不然会爆 int。 1. Tarjan 的标准写法是:用自己的儿子的 `low` 更新自己;用返祖边(或前向边)指向的节点的 `dfn` 更新自己(求强连通分量还需判是否在栈中)。当然,仅仅就强连通分量而言,像你这样写也是对的。
by wsyhb @ 2021-09-15 23:08:22


@[wsyhb](/user/145355) 谢谢您! 我还有个问题,我在以后的 tarjan 中,更新 low 的时候,如果都按照我的写法来写,会出现问题吗? 也就是这句: ``` else if (col[v] == 0) { low[v] = min (low[x], low[v]); } ``` 我去搜很多人都是这样写,请问如果不改以后会出现什么问题?
by cyhyyds @ 2021-09-16 13:14:29


@[cyhyyds](/user/508316) 可以看一下[这篇博客](https://www.luogu.com.cn/blog/user15232/solution-p3388)。
by wsyhb @ 2021-09-16 13:28:46


@[wsyhb](/user/145355) 好的谢谢您!
by cyhyyds @ 2021-09-16 13:41:08


|