bzoj 1064 图论
摘要:
我们根据能否看见建图,有向图边权设成1,然后我们转成无向图,对于每条有向边连一条反边,边权是-1,然后从每个块中任意一个点开始dfs,每个点有一个值,经过一条边到另一个点之后,用原来的点值和边权更新新的点的点值,那么如果我们访问到了一个原来已经走过的点,那么我们找到了一个环(可能是非环,就是一个点出两条有向边,然后又交在一点了),由于数据是合法的,所以这样的非环的现在应该更新成的点值和原有的点值相等,如果不相等的话,取差值的绝对值,就是这个环的长度。那么我们对于所有块,每个块的环的长度都是种类数的倍数,所以取gcd就好了还有一种情况就是没有环,全都是以链的形式存在的,对于这种形式,我们每个块染 阅读全文