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)\),问最小花费。\(n\leq 10^5\)。

Sol

以下皆为口胡。

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

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

\[\sum_{A'(a)\ne 0}\sum_{B'(b)\ne0}\sum_{C'(c)\ne0}\sum_{D'(d)\ne0} 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{abcd\gcd(\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))\right\}\),\(S_2\) 同理。

于是答案就是:

\[\sum_{(a,b)\in S_1}\sum_{(c,d)\in S_2}ac\gcd(b,d)\]

开始反演魔法

\[\sum_{(a,b)\in S_1}a\sum_{p\mid b}p\sum_{(c,d)\in S_2} c\epsilon(\gcd(b,d)=p)\]

\[\sum_{(a,b)\in S_1}a\sum_{p\mid b}p\sum_{k\mid\frac bp}\mu(k)\sum_{(c,d)\in S_2}c\epsilon(pk\mid d)\]

设 \(f(x)=\sum\limits_{(c,d)\in S_2} c\epsilon(x\mid d)\)

式子变成:

\[\sum_{(a,b)\in S_1}a\sum_{d\mid b}f(d)\sum_{p\mid d}p\mu(\frac dp)\]

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

\[\sum_{(a,b)\in S_1}a\sum_{d\mid b}\varphi(d)f(d)\]

然后就能通过本题了。

~~什么jb狗题**才写~~

[JZOJ5970] Space的更多相关文章

  1. java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出

    上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...

  2. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

    有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...

  3. myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.

    最近项目中又增加了新的模块,项目的代码又多了不少.运行的时候总是报如下错误 Exception in thread "http-apr-80-exec-6" java.lang.O ...

  4. java.lang.OutOfMemoryError: PermGen space及其解决方法

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决 ...

  5. User space 与 Kernel space

    学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间). 简单说,Kernel space 是 Linux 内核的运行空间,User spa ...

  6. java.lang.OutOfMemoryError: PermGen space错误解决方法

    1. MyEclipse 中报 PermGen space       window--> preferences-->Myclipse-->Servers-->Tomcat- ...

  7. Git使用出错:Couldn‘t reserve space for cygwin‘s heap, Win32

    今天使用Git在命令行下更新代码遇到了问题,起初觉得是自己安装某软件导致冲突,从网上搜索了一下找到类似问题,成功解决问题. 错误信息如下: E:\storm-sql>git pull origi ...

  8. 修改windows自带的Ctrl+Space输入法切换快捷键

    使用场景: 多为我等码农使用一些编辑器时,编辑器的默认代码提示热键为 ctrl+space ,但这个热键被系统的输入法开关占用.如果遇到可以设置快捷键的编辑器还好,要是不能设置的话(比如火狐浏览器的代 ...

  9. Disk Space Usage 术语理解:unallocated, unused and reserved

    通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...

随机推荐

  1. 2019.02.28 bzoj3527: [Zjoi2014]力(fft)

    传送门 fftfftfft菜题. 题意简述:给一个数列aia_iai​,对于i=1→ni=1\rightarrow ni=1→n求出ansi=∑i<jai(i−j)2−∑i>jai(i−j ...

  2. JAVA 8 主要新特性 ----------------(二)JDK1.8优点概括

    一.JDK1.8优点概括 1.速度更快 由于底层结构和JVM的改变,使得JDK1.8的速度提高. 2.代码更少(增加了新的语法 Lambda 表达式)          增加新特性Lambda表达式的 ...

  3. Cannot set property 'onclick' of null报错

    经常几个页面使用公共js文件, 原来遇到也没留意, 原来是本页面执行的时候, 其他页面也在执行并赋予id于onclick. 因为页面是正常情况下是不存在null和undefined if(null){ ...

  4. 跨域访问问题js

    您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据 访问百度的地址解析  返回来省,地区,市 $.getJSON("http://api.map.baidu.com/clou ...

  5. java jar 包加载文件问题

    场景:   A 项目是一个服务,然后部署到本地 maven 仓库里,然后 B 项目依赖 A 项目,调用  A 项目的方法,但是发现,报错,说找不到文件(config.xsv).这就很奇怪了,怎么会呢, ...

  6. Linux基础理论

    本节内容 1.  Linux的安装及相关配置 2.  UNIX和Linux操作系统概述 3.  Linux命令及帮助 4.  目录结构 6.  用户.群组和权限 7.  用户.群组和权限的深入讨论 1 ...

  7. 使用gulp+bebal实现前端自动化es6转es5的构建

    说明:es6语法已经越来越普及,但是一些低版本的浏览器不支持es6的语法特性,所以我们在开发完前端项目后,往往需要统一把前端es6的代码编译成es5的代码.本文介绍的就是如何手动和自动的把es6转成e ...

  8. Windows核心编程:第10章 同步设备IO与异步设备IO

    Github https://github.com/gongluck/Windows-Core-Program.git //第10章 同步设备IO与异步设备IO.cpp: 定义应用程序的入口点. // ...

  9. 字符串拼接时使用StringBuffer还是StringBuilder?

    StringBuffer.StringBuilder和String一样,也用来代表字符串.String类是不可变类,任何对String的改变都 会引发新的String对象的生成:StringBuffe ...

  10. 使用js做LeetCode

    概述 无意中得知了LeetCode这个刷题网站, 深得我意. 其实作为一个程序员, 我是很看重写基础代码的, 因为这个写熟了, 以后学各种语言就不会太困难. 所以我觉得有必要把这件事记下来, 供以后开 ...