缩点后统计答案可以在 $O(n + m)$ 的时间内完成,但是由于题目的 $m$ 最大可以为 $O(n ^ 2)$ ,所以这样做复杂度为 $O(n ^ 2)$ 。
判断连通性可以传递闭包,传递闭包可以用 bitset 优化。可以做到 $O(\frac {n ^ 3} \omega)$ 。
查看代码
1 |
|
\begin {array}{c} \mathfrak {One Problem Is Difficult} \\\\ \mathfrak {Because You Don't Know} \\\\ \mathfrak {Why It Is Diffucult} \end {array}
缩点后统计答案可以在 $O(n + m)$ 的时间内完成,但是由于题目的 $m$ 最大可以为 $O(n ^ 2)$ ,所以这样做复杂度为 $O(n ^ 2)$ 。
判断连通性可以传递闭包,传递闭包可以用 bitset 优化。可以做到 $O(\frac {n ^ 3} \omega)$ 。
1 | #include <iostream> |