题意:
求
[sum_{a=1}^{n}sum_{b=1}^{n}sum_{c=1}^{n}sum_{d=1}^{n}A_aB_bC_dD_dE_{gcd(a,b)}F_{gcd(b,c)}G_{gcd(c,d)}H_{gcd(d,a)}
]
满足(n leq 50000) .
Sol: 未实现
推一下式子就可以变成
[sum_{a=1}^{n}sum_{b=1}^{n}sum_{c=1}^{n}sum_{d=1}^{n}hat A_ahat B_bhat C_dhat D_dhat E_{lcm(a,b)}hat F_{lcm(b,c)}hat G_{lcm(c,d)}hat H_{lcm(d,a)}
]
由(a)到(b)连一条权值为(lcm(a, b))的边,边数很少.
直接看成枚举四元环,貌似不需要拆分层图???? 多维护这个数是第几个到的,开4个数组,直接做就好了吧..
枚举三元环
- 将所有无向边((x, y))定向为(deg_x geq deg_y).
- 枚举一个(i)作为起始点,把连出去的所有点的(last ightarrow i)
- 枚举(i)连出去的所有点(j),并且枚举(j)连出去的所有点(k)
- 如果(last_k = i),那么找到一个三元环.
可见一个三元环只在最大的点被计算到贡献.
复杂度是(O(m sqrt m))的,下面的(deg)为新图上的度数
- 对于所有(deg_u leq sqrt m)的(u),此时的代价最多为(deg_u^2),最多复杂度为(O(m sqrt m))
- 对于所有(deg_u > sqrt m)的(u),可见最多只有(sqrt m)这样的点,最多会枚举其余的(m)条边,此部分复杂度为(O(m sqrt m))
枚举四元环,我不会证复杂度
- 将所有点按照度数排序,注意我们并不需要重定向,我们枚举一个四元环中度数最大点(x)
- 继续枚举一个(y, ; y < x),以及一个(z, z < x)
- 我们给答案加上(cnt_z),并且(cnt_z ightarrow cnt_z + 1)