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. centos7通过yum安装JDK1.8

    安装之前先检查一下系统有没有自带open-jdk 命令: rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示没有安装. ...

  2. 别人的Linux私房菜(23)软件安装RPM、SRPM、YUM

    RPM(RedHat Package Manager),不同Linux发行版发布的RPM文件甚至不同版本,不通用. SRPM为Source RPM,所提供的软件内容没有经过编译,格式为xxx.src. ...

  3. SAS 逻辑库

    SAS逻辑库 SAS逻辑库是一个或多个SAS文件的集合,用于组织.查找和管理 SAS文件.SAS逻辑库管理的SAS文件包括SAS数据集.SAS目录.已编 译的SAS程序,以及多维数据库文件等. 1.逻 ...

  4. sshpass 使用方法

    首先下载sshpass并且安装 $ tar -zxvf sshpass-1.06.tar.gz $ cd sshpass-1.06 $ ./configure --prefix=/usr/local/ ...

  5. 读书笔记之Linux系统编程与深入理解Linux内核

    前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...

  6. 如何将已有的本地Git 库推送到远端仓库?

    以Github 为例 step 1. 在Github建立一个空的仓库 Step 2. 建立远端仓库的别名 >$ git remote add origin https://github.com/ ...

  7. uboot处理dtb

    目录 uboot处理dtb 传递参数给内核 dtb 地址选择 dtb修改 移植fdt title: uboot处理dtb date: 2019/4/28 17:18:19 toc: true --- ...

  8. 音视频编解码——YUV视频格式详解

    一.YUV 介绍 YUV是一种颜色编码方方式,通常由彩色摄像机进行取像,然后把取得的彩色图像信号经过分色.分别放大校正后得到RGB,再经过矩阵变换得到亮度信号Y和两个色差信号B-Y(即U).R-Y(即 ...

  9. JavaScript使用浏览器内置XML解析器解析DOM对象

    所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 XML DOM 对象 (可通过 JavaScript 操作的对象). 一.获取DOM对象 XMLHttpReq ...

  10. ssh命令-使用密钥文件进行登陆

    在win上面可以使用XSHELL来登录类似于阿里云这样的安全服务器,在ubuntu上面就可以使用系统自带的命令工具来连接 使用命令 ssh -i key.pem [server] 实例如下: ssh ...