我们根据能否看见建图,有向图边权设成1,然后我们转成无向图, 对于每条有向边连一条反边,边权是-1,然后从每个块中任意一个点开始 dfs,每个点有一个值,经过一条边到另一个点之后,用原来的点值和边权 更新新的点的点值,那么如果我们访问到了一个原来已经走过的点,那么我们 找到了一个环(可能是非环,就是一个点出两条有向边,然后又交在一点了),由于 数据是合法的,所以这样的非环的现在应该更新成的点值和原有的点值相等,如果不相等 的话,取差值的绝对值,就是这个环的长度. 那么我们对于所有块,每个块的环的…