zoukankan      html  css  js  c++  java
  • [JZOJ5970] Space

    Description

    在一个四维空间中,给 (4)(n) 的排列 (A,B,C,D),对于点 ((x,y,z,w)) ,到点 ((A_x,B_y,C_z,D_w)) 的花费为 (1),到其余点的花费为 (2)。有一个人要从 ((1,1,1,1)) 出发,遍历所有点再回到 ((1,1,1,1)),问最小花费。(nleq 10^5)

    Sol

    以下皆为口胡。

    首先要求四维空间环的个数还是挺显然的。

    (A'(x)) 表示在排列 (A) 中环长为 (x) 的环的个数。那么答案就是:

    [sum_{A'(a) e 0}sum_{B'(b) e0}sum_{C'(c) e0}sum_{D'(d) e0} A'(a)B'(b)C'(c)D'(d)frac{abcd}{operatorname{lcm}(a,b,c,d)} ]

    这个复杂度是 (O(n^2)) 的因为每项中值不为 (0) 的大概只有 (sqrt n) 个。大概可以拿并查集搞一下?(再次强调这些都是口胡)

    发现这个式子跟 (abcd) 四项都有关很烦啊,如果把它拆成只跟 (ab) 有关的项和只跟 (cd) 有关的项那似乎就可做一点了...?然后拆拆拆之后式子后边那一大坨变成了:

    [frac{abcdgcd(operatorname{lcm}(a,b),operatorname{lcm}(c,d))}{operatorname{lcm}(a,b)operatorname{lcm}(c,d)}=gcd(a,b)gcd(c,d)gcd(operatorname{lcm}(a,b),operatorname{lcm}(c,d)) ]

    惊奇地发现拆成了只跟 (ab) 有关的项和只跟 (cd) 有关的项。

    于是可以维护两个集合 (S_1,S_2)(S_1=left{(gcd(a,b)A'(a)B'(b),operatorname{lcm}(a,b)) ight}),(S_2) 同理。

    于是答案就是:

    [sum_{(a,b)in S_1}sum_{(c,d)in S_2}acgcd(b,d) ]

    开始反演魔法

    [sum_{(a,b)in S_1}asum_{pmid b}psum_{(c,d)in S_2} cepsilon(gcd(b,d)=p) ]

    [sum_{(a,b)in S_1}asum_{pmid b}psum_{kmidfrac bp}mu(k)sum_{(c,d)in S_2}cepsilon(pkmid d) ]

    (f(x)=sumlimits_{(c,d)in S_2} cepsilon(xmid d))

    式子变成:

    [sum_{(a,b)in S_1}asum_{dmid b}f(d)sum_{pmid d}pmu(frac dp) ]

    后边那个是 (id*mu) 显然等于 (varphi)

    [sum_{(a,b)in S_1}asum_{dmid b}varphi(d)f(d) ]

    然后就能通过本题了。

    什么jb狗题**才写

  • 相关阅读:
    jquery的$.与$.fn的区别
    jquery加载页面的方法
    创业股权究竟如何分配--新浪创业训练营
    创业者要处理好的10大关系
    洪泰基金投资经理殷鹏:肯定不投的八类项目
    创业初期股权如何分配-------陈楠心血总结
    排序总结
    如何快速进入一门领域,学习新的知识
    虚拟机的设置
    华为大数据项目fusionInsight
  • 原文地址:https://www.cnblogs.com/YoungNeal/p/10300645.html
Copyright © 2011-2022 走看看