原题戳这里
思路
分三种情况讨论:
1.有环
那显然是对于环长取个\(gcd\)
2.有类环
也就是这种情况
1→2→3→4→5→6→7,1→8→9→7
假设第一条链的长度为\(l_1\),第二条为\(l_2\),那么\(l_1\)和\(l_2\)需要满足\(l_1\equiv l_2(mod\ k)\),也就是\(k|(l_1-l_2)\)。如果我们建权值为\(-1\)的反向边的话,找出来的环就涵盖了这种情况,并且取\(gcd\)就能满足等式
3.有链
对答案无影响
最后还需要加一个特判,就是只有链的情况
具体可以看代码
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include