[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,截图如 ...
随机推荐
- ABP .NET corej 版本 第一篇
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP使用以下技术: 服务器端: l ASP.NET MVC 5.Web API 2.C# 5. ...
- java多线程系列10 阻塞队列模拟
接下来的几篇博客会介绍下juc包下的相关数据结构 包含queue,list,map等 这篇文章主要模拟下阻塞队列. 下面是代码 import java.util.LinkedList; import ...
- .NET winform播放音频文件
前提:最近要求做一个在winform端做一个音频文件播放的功能,至此,总结最近搜寻的相关资料. 一.微软提供了三种方式来播放音频文件 1.通过System.Media.SoundPlayer来播放 2 ...
- Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)
原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代 ...
- 【轻松前端之旅】<a>元素妙用
浏览器读取服务器内容时,通过URL(包含:协议+域名+绝对路径)如:https://www.baidu.com/index.html浏览器从本地读取内容时,会用file协议.如:file:///E:/ ...
- 将JSON数据转换成JAVA的实体类
思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...
- cropper,图片剪辑上传工具的使用
cropper工具是一个功能强,兼容性好的一个图片裁剪和上传工具 GitHub地址:https://github.com/kesixin/Head_Cut_PC <div class=" ...
- python基本数据类型之整型和浮点型
python基本数据类型之数字与浮点型 在python3中,整数的数据类型为int,而浮点数的数据类型为float.python2中整数可以是int和long(长整型)两种类型,python3只保留了 ...
- Python开发——6.文件操作
一.文件操作 1.文件操作的处理流程 打开文件得到文件句柄并赋值给一个变量====>通过句柄对文件进行分析====>关闭文件 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open( ...
- 2017-2018-1 20155205 嵌入式C语言——时钟
2017-2018-1 20155205 嵌入式C语言--时钟 题目要求 基础知识 插入位(以分钟为例) 提取位(以分钟为例) 在提取分钟时,运用到了位运算,位运算有以下规律: &0 --&g ...