【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题
名字虽然很长。但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友)
来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用反演写的,然后……还是错了23333。赛后题解给出的是用容斥原理解决问题,但是我并看不懂学姐的公式,也还不懂莫比乌斯反演的第二种形式。直到最近刚看,才恍然大悟。
这类问题的特点是,给一个集合,问所有子集的w(gcd(某个子集))的和问题(w表示某个函数,一般是跟子集长度有关)。
可以做出两个函数。
一个是 f(x)= w(gcd(子集)=x)的答案。
一个是g(x)=w(gcd(子集)=k*x)的答案。(k≥1)。而且g(x)要求可以直接求出来。
显然g(x)=∑f(kx)(k≥1)。
然后这个东西可以反演,变成
f(x)=∑x|d u(d/x)*g(d)。
然后就是答案就是ans=∑f(x) (或者满足某种性质的x)
而如果时间复杂度要求是nlogn的,然后容斥理解,就很简单了。
f(x)=g(x)-∑f(kx) (k大于等于2),通过倒序处理答案,调和级数复杂度解决了问题。
当然容斥也有不足的地方,比如遇到低于nlogn的复杂度,或者需要预处理答案的那种(基本上就是遇到杜教课件里面的两种情况,1空间换时间,2 10^10次,就得考虑用反演变换化简了)
但是一旦容斥可以写,问题就变成如果搞出w函数。就变成数学公式,就可以甩锅给队友。而且切起来一气呵成。
题目合集上我在vjudge找到了一场练习,除掉几道八中上面的,其他基本写掉了,而且大部分可以用容斥写,感觉真心作弊。
https://vjudge.net/contest/139539#overview
另外这就是开头说的cf的某道题:http://codeforces.com/contest/839/problem/D
【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题的更多相关文章
- [模板] 容斥原理: 二项式反演 / Stirling 反演 / min-max 容斥 / 子集反演 / 莫比乌斯反演
//待更qwq 反演原理 二项式反演 若 \[g_i=\sum_{j=1}^i {\binom ij} f_j\] , 则有 \[ f_i=\sum_{j=1}^i (-1)^{i-j} {i \ch ...
- 【LOJ#6374】网格(二项式反演,容斥)
[LOJ#6374]网格(二项式反演,容斥) 题面 LOJ 要从\((0,0)\)走到\((T_x,T_y)\),每次走的都是一个向量\((x,y)\),要求\(0\le x\le M_x,0\le ...
- BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)
2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MBSubmit: 4493 Solved: 2695[Submit][Statu ...
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu1695(容斥 or 莫比乌斯反演)
刚开始看题,想了一会想到了一种容斥的做法.复杂度O( n(3/2) )但是因为题目上说有3000组测试数据,然后吓尿.完全不敢写. 然后想别的方法. 唉,最近精神有点问题,昨天从打完bc开始想到1点多 ...
- 洛谷 P2522 [HAOI2011]Problem b (莫比乌斯反演+简单容斥)
题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...
- 【CF900D】Unusual Sequences 容斥(莫比乌斯反演)
[CF900D]Unusual Sequences 题意:定义正整数序列$a_1,a_2...a_n$是合法的,当且仅当$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...+a_n= ...
- JZYZOJ1518 [haoi2011]b 莫比乌斯反演 分块 容斥
http://172.20.6.3/Problem_Show.asp?id=1518最开始只想到了n^2的写法,肯定要超时的,所以要对求gcd的过程进行优化.首先是前缀和容斥,很好理解.第二个优化大致 ...
- 洛谷P4318 完全平方数(容斥,莫比乌斯反演)
传送门 求第$k$个没有完全平方数因数的数 一开始是想筛一波莫比乌斯函数,然后发现时间复杂度要炸 于是老老实实看了题解 一个数的排名$k=x-\sum_{i=1}^{x}{(1-|\mu(i)|)}$ ...
随机推荐
- equals和==方法比较(一)
问题描述 今天在使用spotbugs代码走查时发现这样一个问题,两个Long类型的变量使用==判断数值是否相等,spotbugs提示这是一个很致命的错误,代码大概如下, Long l1=123l; L ...
- Jenkins CLI 通过ssh方式链接时的证书
在Jenkins自己的配置文档下,并没有详细说明要如何生成ssh证书,不过随便网上查一查就会有很多. 这里记录一个坑: 这个ssh必须要用ssh2!!! 这个ssh必须要用ssh2!!! 这个ssh必 ...
- JS继承方法
1.原型链: 每个构造函数都有一个原型对象,且有一个指针指向该原型对象(prototype),原型对象都包含一个指向构造函数的指针(constructor),而实例都包含一个指向原型对象的内部指针(p ...
- 「日常训练」Magic Stones(CodeForces-1110E)
题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)成\(c_{i+1}+c_{i-1}-c_i\),问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...
- 求两个字符串的最长公共子串——Java实现
要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的) public class Main03{ // 求解两个字符号的最长 ...
- discuz修改附件出售用其他积分,与帖子不一样
现实中我遇到了这种情况,一个资源可以用两种积分购买,于是我决定用售卖贴和出售附件的方式,附件内容与贴内隐藏内容是一样的,但目前discuz的出售主题和附件使用的是同一种积分,有了此修改 1.首先是显示 ...
- 【snmp】Linux开启snmp及查询
1.Linux snmp 1.安装snmp yum install -y net-snmp* 2.备份snmp配置 cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.co ...
- 在Windows2008下添加iscsi存储出现磁盘Offine(The disk is offine because of policy set by an adminstrator)的解决方法
打开CMD命令行输入如下命令: DISKPART.EXE DISKPART> san SAN Policy : Offline Shared DISKPART> san policy=On ...
- LearnPython - Zip格式文件的解压缩
import zipfile import os def unzip(zip_name, target_dir): files = zipfile.ZipFile(zip_name) for zip_ ...
- 利用Tensorflow进行自然语言处理(NLP)系列之二高级Word2Vec
本篇也同步笔者另一博客上(https://blog.csdn.net/qq_37608890/article/details/81530542) 一.概述 在上一篇中,我们介绍了Word2Vec即词向 ...