关于 WA on #3/#11
查看原帖
关于 WA on #3/#11
1096384
ctzm楼主2025/1/20 18:50

本题正解应为拓扑排序(线性复杂度),但通常的写法可能会出现 WA on #3/#11 或者两者都有的情况。

如果采用 SPFA,其实即使是在 DAG 的条件下也可以卡掉(例如一大堆三角形构造出的卡 SPFA 就满足 DAG,只是没故意去卡而已)。

如果采用 Dij,理论上不可以处理最长路问题,一种方法是将 vis 去掉,有点像 SPFA,只是换成优先队列而已,理论上也可以卡到指数级。

如果你写的是拓扑,但是 WA 了,一种最便于理解,最简单的解决方案:

  • 首先,不把全图跑一遍tarjan,只 tarjan(S) 即可。如果深搜找不到某个点,那么意味着 S (起点)不可能到达它,没必要考虑。
  • 其次,上面的方法注定有些点 属于哪个scc 的数组 的值为 0,建边时要注意这一点,既不能自环,两边也都不应为 0。

这样写就可以用你最喜欢的拓扑排序 AC 本题啦!

2025/1/20 18:50
加载中...