莫比乌斯反演 模板啊
2015-08-15 21:48
357 查看
莫比乌斯反演:
f(x) = sigma{g(d)}其中x % d == 0,则g(x) = sigma{mu(d) * f(x/d)}
f(x) = sigma{g(d)}其中d % x == 0,则g(x) = sigma{mu(d/x) * f(d)}
莫比乌斯反演中mu(x) =
1 {x中含有偶数个不同的质因子}
-1 {x中含有奇数个不同的质因子}
0 {其他情况}
直接上代码:
学习:
/article/2371903.html
http://blog.csdn.net/qw4990/article/details/14055183
http://wenku.baidu.com/view/542961fdba0d4a7302763ad5.html
HDU 1695
http://www.cnblogs.com/pdev/p/4098914.html
f(x) = sigma{g(d)}其中x % d == 0,则g(x) = sigma{mu(d) * f(x/d)}
f(x) = sigma{g(d)}其中d % x == 0,则g(x) = sigma{mu(d/x) * f(d)}
莫比乌斯反演中mu(x) =
1 {x中含有偶数个不同的质因子}
-1 {x中含有奇数个不同的质因子}
0 {其他情况}
直接上代码:
void Moblus() { memset(check,false,sizeof(check)); mu[1] = 1; int tot = 0; for(int i = 2; i <= MAXN; i++) { if( !check[i] ) { prime[tot++] = i; mu[i] = -1; } for(int j = 0; j < tot; j++) { if(i * prime[j] > MAXN) break; check[i * prime[j]] = true; if( i % prime[j] == 0) { mu[i * prime[j]] = 0; break; } else { mu[i * prime[j]] = -mu[i]; } } } }
学习:
/article/2371903.html
http://blog.csdn.net/qw4990/article/details/14055183
http://wenku.baidu.com/view/542961fdba0d4a7302763ad5.html
HDU 1695
http://www.cnblogs.com/pdev/p/4098914.html
相关文章推荐
- 一群猴子排成一圈问,为啥子我这个段子要短些,请鉴证一下合理不?
- Linux 设备驱动模型,I2C驱动,sys文件系统(1)
- 大白话讲解决策树【案例】:如何区分西方人和东方人
- hdu1541-Stars(树状数组)
- 整型信号量与记录型信号量
- Python多线程(1)——介绍
- 全面认识UML组件图
- 树形dp入门[POJ1655][HDU1520][HDU1561][HDU1011][POJ1155][ZOJ3626]
- 刀哥多线程之调度组gcd-12-group
- @property在内存管理中的参数问题
- sem_open中信号量命名
- 26个Jquery使用小技巧
- @property在内存管理中的参数问题
- LRU Cache
- 几种自动执行js代码的方式
- 数据结构——线索二叉树
- 刀哥多线程之一次性代码gcd-11-once
- EOJ 2521 Guarding the Farm
- 关于CLASSPATH
- 《云革命》读书笔记