(转载)有关反演和gcd
tips :
积性函数 F (n) = Π F (piai )
若F (n), G (n)是积性函数则
F (n) * G (n)
Σd | n F (n)
是积性函数
n = Σd | n φ (d)
1 = Σd | n μ (d)
Σgcd (i, n) = 1 i = n * φ (n) / 2
Problem1
F (n) = Σ1<= i <= n gcd(i, n), n <= 1000000
Sol
枚举结果
F (n) = Σd | n d * Σgcd (i, n) = d 1
F (n) = Σd | n d * Σgcd (i / d, n / d) = 1 1
F (n) = Σd | n d * Σgcd (i / d, n / d) = 1 1
F (n) = Σd | n d * φ (n / d)
单次计算O (sqrt N)
筛法O (N)
Problem 2
F (n) = Σ1<= i <= n gcd (i, n), n <= 2147483647 (POJ longge's problem)
Sol
由P1可知F (n)是积性函数 因此考虑计算F (pk)
由P1 易知
F (pk) = p * F (pk - 1) + (p - 1)pk - 1
单个F(n)可以O (sqrt N)时间有他的质因子分解计算得到
Problem 3
F (n) = Σ1<= i <= n lcm(i, n), n <= 1000000 (SPOJ LCMSUM)
显而易见的变形
F (n) = Σ1<= i <= n i * n / gcd (i, n)
F (n) =Σd | n Σgcd (i, n) = d i * n / d
F (n) =Σd | n n / d * Σgcd (i, n) = d i
F (n) =Σd | n n / d * Σgcd (i / d, n / d) = 1 i
F (n) =Σd | n n / d * d * Σgcd (i / d, n / d) = 1 i / d
令j = i / d
F (n) =Σd | n n * Σgcd (j, n / d) = 1 j
由Σgcd (i, n) = 1 i = n * φ (n) / 2
F (n) =Σd | n n * (n / d) * φ (n / d) / 2
F (n) =n * Σd | n (n / d) * φ (n / d) / 2
F (n) =n / 2 * Σd | n d * φ (d)
筛出 Σd | n d * φ (d) O (N)-O(1)
Problem 4
F (n) = Σ1<= i <= n Σ1<= j <= n gcd (i, j) n <= 1000000 (SPOJ GCDEX)
Sol
G (n) = Σd | n d * φ (n / d)
F (n) = Σ1<= i <= n G (i)
筛出G (i) 前缀和
Problem 5
求F (n, m) = [n / d] * [m / d]
Sol
研究退化情况 m = 1 F (n) = [n / d]
共有sqrt n种不同取值
F (n, m) = [n / d] * [m / d]
共有sqrt n + sqrt m种不同取值 归并这两种取值
Problem 6
多组询问n, m 求F (n, m) = Σ1<= i <= n Σ1<= j <= m gcd (i, j)
Sol
F (n, m) = Σ1<= i <= n Σ1<= j <= m Σ d | gcd (i, j) φ (d)
F (n, m) = Σ d φ (d) Σ1<= i <= n d | i Σ1<= j <= m d | j 1
F (n, m) = Σ d φ (d) * [n / d] * [m / d]
可以经P5解决
Problem 6
多组询问n, m 求F (n, m) = Σ1<= i <= n Σ1<= j <= m gcd (i, j) = 1 1
Sol
F (n, m) = Σ1<= i <= n Σ1<= j <= m Σ d | gcd (i, j) μ (d)
F (n, m) = Σ d μ (d) Σ1<= i <= n d | i Σ1<= j <= m d | j 1
F (n, m) = Σ d μ (d) * [n / d] * [m / d]
可以经P5解决
Problem 7
F (n, m) = Σ1<= i <= n Σ1<= j <= m Σ gcd (i, j) <- prime 1 (BZOJ YY的GCD)
Sol
F (n, m) = Σ1<= i <= n Σ1<= j <= m Σ gcd (i, j) <- prime 1
F (n, m) = Σ1<= i <= n Σ1<= j <= m Σ p <- prime gcd (i, j) = p 1
F (n, m) = Σ p <- prime Σ1<= i <= n Σ1<= j <= m gcd (i, j) = p 1
F (n, m) = Σ p <- prime Σ1<= i <= n / p Σ1<= j <= m / p gcd (n / p, m / p) = 1 1
可以经P6解决
(转载)有关反演和gcd的更多相关文章
- 【莫比乌斯反演】关于Mobius反演与gcd的一些关系与问题简化(bzoj 2301 Problem b&&bzoj 2820 YY的GCD&&BZOJ 3529 数表)
首先我们来看一道题 BZOJ 2301 Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd( ...
- 数学:莫比乌斯反演-GCD计数
Luogu3455:莫比乌斯反演进行GCD计数 莫比乌斯反演就是用来解决这一类问题的,通常f函数是要求的那个,F函数是显然的 这样利用F的结果就可以推出来f的结果 在计算结果的时候整除分快儿一下就可以 ...
- ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119 依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下 ...
- [洛谷2257]YY的GCD 题解
整理题目转化为数学语言 题目要我们求: \[\sum_{i=1}^n\sum_{i=1}^m[gcd(i,j)=p]\] 其中 \[p\in\text{质数集合}\] 这样表示显然不是很好,所以我们需 ...
- NOI2010能量采集(数论)
没想到NOI竟然还有这种数学题,看来要好好学数论了…… 网上的题解: 完整的结题报告: 首先我们需要知道一个知识,对于坐标系第一象限任意的整点(即横纵坐标均为整数的点)p(n,m),其与原点o(0,0 ...
- OI题目类型总结整理
## 本蒟蒻的小整理qwq--持续更新(咕咕咕) 数据结构 数据结构 知识点梳理 数据结构--线段树 推荐yyb dalao的总结--戳我 以后维护线段树还是把l,r写到struct里面吧,也别写le ...
- loj2000[SDOI2017]数字表格
题意:f为Fibnacci数列.求$\prod_{1<=i<=n,1<=j<=m} f[gcd(i,j)]$. n,m<=1e6. 标程: #include<bit ...
- 莫比乌斯反演学习笔记(转载自An_Account大佬)
转载自An_Account大佬 提示:别用莫比乌斯反演公式,会炸的 只需要记住: [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\ ...
- 洛谷P2568 GCD (欧拉函数/莫比乌斯反演)
P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入 ...
随机推荐
- pdo 连接数据库 报错 could not find driver 解决方法
在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5. 在PHP的默认设置中,只打开了ph ...
- SYN, FIN, ACK, PSH, RST, URG
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...
- shell 实现类似php的require_once函数
config.sh #/bin/bash require_once() { #File the true path ,To prevent a symbolic link local realpath ...
- Nested Loop,Sort Merge Join,Hash Join
三种连接工作方式比较: Nested loops 工作方式是从一张表中读取数据,访问另一张表(通常是索引)来做匹配,nested loops适用的场合是当一个关联表比较小的时候,效率会更高. Merg ...
- MVC-HtmlHelper扩展
1.添加对System.Web.Mvc的引用 2.添加一个静态类,里面的扩展方法也必须是静态的 //HtmlHelper扩展类 //添加对System.Web.Mvc的引用 //命名空间:System ...
- 【学习总结】Info.plist和pch文件的作用
Info.plist 建立一个工程后,会在Supporting files文件夹下看到一个“Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 项目中其他Plis ...
- sql中的inner join, left join, right join的区别
下面介绍一下 inner join, left join, right join这者之间的区别 现在我假设有A表和B表 left join select * from A a left join B ...
- MySQL的基本命令
MySQL的基本命令 启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出数据库 ...
- Mybatis 一对一、一对多、多对多关联之级联添加
示例项目:MIPO_CRM 一.一对一关联 示例:订单与销售机会 描述:在业务员与客户的联系人的联系记录中可以生成一条销售机会,而此条销售机会可生成一条订单,两者呈一对一关联. 1.表设计 oppor ...
- winform保存登录cookie
在web程序中,我们通常使会使用cookie来保存一些用户状态,或者权限或者你想保存的东西,但是在CS程序中,如果要使用cookie就必须要做些功课了... 最好注意以下几点: 1.使用成员 ...