• [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狗题**才写

  • 相关阅读:
    伪静态常用配置方法
    vue移动端选择日期,星期,时间控件
    didact笔记
    OpenSSL 安装与配置(转)
    2、Servlet系列jsp
    24、lambda表达式
    20、File类、io流(字节流\字符流\输入流\输出流\标准输入\标准输出\打印流)
    17、集合框架_HashSet\TreeSet\比较器\泛型
    23、网络编程 IP、TCP、UDP
    21、多线程(线程与进程\线程的实现方式\线程的声明周期\线程同步与死锁\生产者消费者问题)
  • 原文地址:https://www.cnblogs.com/YoungNeal/p/10300645.html
Copyright © 2020-2023  润新知