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的更多相关文章

  1. 【莫比乌斯反演】关于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( ...

  2. 数学:莫比乌斯反演-GCD计数

    Luogu3455:莫比乌斯反演进行GCD计数 莫比乌斯反演就是用来解决这一类问题的,通常f函数是要求的那个,F函数是显然的 这样利用F的结果就可以推出来f的结果 在计算结果的时候整除分快儿一下就可以 ...

  3. ZOJ 3435 Ideal Puzzle Bobble 莫比乌斯反演

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119 依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下 ...

  4. [洛谷2257]YY的GCD 题解

    整理题目转化为数学语言 题目要我们求: \[\sum_{i=1}^n\sum_{i=1}^m[gcd(i,j)=p]\] 其中 \[p\in\text{质数集合}\] 这样表示显然不是很好,所以我们需 ...

  5. NOI2010能量采集(数论)

    没想到NOI竟然还有这种数学题,看来要好好学数论了…… 网上的题解: 完整的结题报告: 首先我们需要知道一个知识,对于坐标系第一象限任意的整点(即横纵坐标均为整数的点)p(n,m),其与原点o(0,0 ...

  6. OI题目类型总结整理

    ## 本蒟蒻的小整理qwq--持续更新(咕咕咕) 数据结构 数据结构 知识点梳理 数据结构--线段树 推荐yyb dalao的总结--戳我 以后维护线段树还是把l,r写到struct里面吧,也别写le ...

  7. loj2000[SDOI2017]数字表格

    题意:f为Fibnacci数列.求$\prod_{1<=i<=n,1<=j<=m} f[gcd(i,j)]$. n,m<=1e6. 标程: #include<bit ...

  8. 莫比乌斯反演学习笔记(转载自An_Account大佬)

    转载自An_Account大佬 提示:别用莫比乌斯反演公式,会炸的 只需要记住: [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\ ...

  9. 洛谷P2568 GCD (欧拉函数/莫比乌斯反演)

    P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入 ...

随机推荐

  1. pdo 连接数据库 报错 could not find driver 解决方法

    在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5.  在PHP的默认设置中,只打开了ph ...

  2. SYN, FIN, ACK, PSH, RST, URG

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...

  3. shell 实现类似php的require_once函数

    config.sh #/bin/bash require_once() { #File the true path ,To prevent a symbolic link local realpath ...

  4. Nested Loop,Sort Merge Join,Hash Join

    三种连接工作方式比较: Nested loops 工作方式是从一张表中读取数据,访问另一张表(通常是索引)来做匹配,nested loops适用的场合是当一个关联表比较小的时候,效率会更高. Merg ...

  5. MVC-HtmlHelper扩展

    1.添加对System.Web.Mvc的引用 2.添加一个静态类,里面的扩展方法也必须是静态的 //HtmlHelper扩展类 //添加对System.Web.Mvc的引用 //命名空间:System ...

  6. 【学习总结】Info.plist和pch文件的作用

      Info.plist   建立一个工程后,会在Supporting files文件夹下看到一个“Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 项目中其他Plis ...

  7. sql中的inner join, left join, right join的区别

    下面介绍一下 inner join, left join, right join这者之间的区别 现在我假设有A表和B表 left join select * from A a left join B ...

  8. MySQL的基本命令

    MySQL的基本命令 启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出数据库 ...

  9. Mybatis 一对一、一对多、多对多关联之级联添加

    示例项目:MIPO_CRM 一.一对一关联 示例:订单与销售机会 描述:在业务员与客户的联系人的联系记录中可以生成一条销售机会,而此条销售机会可生成一条订单,两者呈一对一关联. 1.表设计 oppor ...

  10. winform保存登录cookie

       在web程序中,我们通常使会使用cookie来保存一些用户状态,或者权限或者你想保存的东西,但是在CS程序中,如果要使用cookie就必须要做些功课了... 最好注意以下几点:   1.使用成员 ...