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_a\hat B_b\hat C_d\hat D_d\hat 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 \rightarrow 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 \rightarrow cnt_z + 1\)
posted @ 2019-03-15 22:11  foreverpiano  阅读(160)  评论(0编辑  收藏  举报