zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Visual Studio Code 工具使用教程
    JS获取节点的兄弟,父级,子级元素
    动态加载js
    实用的文本和图片无缝滚动效果
    兼容各种浏览器的文字循环无缝滚动效果
    中文乱码
    js 循环json
    js中获取basePath
    json转换为map
    java des 加密/解密
  • 原文地址:https://www.cnblogs.com/foreverpiano/p/10539859.html
Copyright © 2011-2022 走看看