将边集划分成若干极大不相交集合,满足每个简单环都可以由某些集合相加得到,则答案就是这些集合大小的$\gcd$的约数. 对于一个简单环,上面的边一定不是桥边,而和它在一个集合的边肯定不在其他简单环上.因此删除它之后,这些边就从非桥边变成了桥边. 枚举每条非桥边跑Tarjan计算答案即可. 时间复杂度$O(m(n+m))$. #include<cstdio> const int N=2005,BUF=21000; int n,m,i,x,y,now,ans,D,cut[N],g[N],v[N<…