problem B

题意:

[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个数组,直接做就好了吧..


枚举三元环

  1. 将所有无向边((x, y))定向为(deg_x geq deg_y).
  2. 枚举一个(i)作为起始点,把连出去的所有点的(last ightarrow i)
  3. 枚举(i)连出去的所有点(j),并且枚举(j)连出去的所有点(k)
  4. 如果(last_k = i),那么找到一个三元环.

可见一个三元环只在最大的点被计算到贡献.

复杂度是(O(m sqrt m))的,下面的(deg)为新图上的度数

  1. 对于所有(deg_u leq sqrt m)(u),此时的代价最多为(deg_u^2),最多复杂度为(O(m sqrt m))
  2. 对于所有(deg_u > sqrt m)(u),可见最多只有(sqrt m)这样的点,最多会枚举其余的(m)条边,此部分复杂度为(O(m sqrt m))

枚举四元环,我不会证复杂度

  1. 将所有点按照度数排序,注意我们并不需要重定向,我们枚举一个四元环中度数最大点(x)
  2. 继续枚举一个(y, ; y < x),以及一个(z, z < x)
  3. 我们给答案加上(cnt_z),并且(cnt_z ightarrow cnt_z + 1)
原文地址:https://www.cnblogs.com/foreverpiano/p/10539859.html