[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)\),问最小花费。\(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的更多相关文章
- java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出
上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...
- myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.
最近项目中又增加了新的模块,项目的代码又多了不少.运行的时候总是报如下错误 Exception in thread "http-apr-80-exec-6" java.lang.O ...
- java.lang.OutOfMemoryError: PermGen space及其解决方法
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决 ...
- User space 与 Kernel space
学习 Linux 时,经常可以看到两个词:User space(用户空间)和 Kernel space(内核空间). 简单说,Kernel space 是 Linux 内核的运行空间,User spa ...
- java.lang.OutOfMemoryError: PermGen space错误解决方法
1. MyEclipse 中报 PermGen space window--> preferences-->Myclipse-->Servers-->Tomcat- ...
- Git使用出错:Couldn‘t reserve space for cygwin‘s heap, Win32
今天使用Git在命令行下更新代码遇到了问题,起初觉得是自己安装某软件导致冲突,从网上搜索了一下找到类似问题,成功解决问题. 错误信息如下: E:\storm-sql>git pull origi ...
- 修改windows自带的Ctrl+Space输入法切换快捷键
使用场景: 多为我等码农使用一些编辑器时,编辑器的默认代码提示热键为 ctrl+space ,但这个热键被系统的输入法开关占用.如果遇到可以设置快捷键的编辑器还好,要是不能设置的话(比如火狐浏览器的代 ...
- Disk Space Usage 术语理解:unallocated, unused and reserved
通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...
随机推荐
- 创建.NET core的守护进程
http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html
- python任意进制转换
python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...
- pycharm 2017最新激活码
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- sqlserver删除临时表中的数据
select distinct * into #tmptable from tablename drop table tablename select * into tablename from #t ...
- OpenCV图像分割2
1.GrubCut算法 2.K-means聚类算法 3.分水岭算法
- s31 zabbix监控企业级监控
zabbix 简介与监控 zabbix安装部署 zabbix配置主机监控 zabbix 自定义监控 zabbix 配置报警方式 网站服务全面监控 zabbix 自动发现与snmp监控
- JAVA 8 主要新特性 ----------------(三)新功能Lambda表达式入门
一.简述 Java为了扩充匿名方法在1.8中新追加的特性.本身Java之前的版本是没有匿名方法的,只有匿名对象. 二.使用 Java中使用匿名方法必须要对应接口中的一个抽象方 ...
- ELK部署与使用总结
前言 自己最近在负责elk的工作,在这里想写一个总结,把好多遇到的问题啥的,都写一下,也做个笔记, 目录 环境介绍 kafka,zookeeper安装 logstash安装 elasticsearch ...
- 171. Excel表列序号
题目:给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> ...
- 【接口时序】5、QSPI Flash的原理与QSPI时序的Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 4.Matlab版本:Matlab2014b/ ...