数学 莫比乌斯反演
文章平均质量分 76
_pkm_
love coding
展开
-
HDU 1695 GCD(莫比乌斯反演,入门)
题目链接 题意:从区间[a,b]选择一个x,从区间[c,d]选择一个数y,使得gcd(x,y)==k 的方案数。 莫比乌斯反演学习资料 1,文库2,百科莫比乌斯反演学习 纯属个人理解,错误之处还望指正。莫比乌斯反演就是两个函数之间的关系,感觉类似函数中的反函数,莫比乌斯反演是数论中一个比较重要的公式,用于简化加速计算。 公式是: F(n)=∑d|nf(d)⇔f(n原创 2016-11-01 23:28:43 · 1649 阅读 · 0 评论 -
BZOJ 2301: [HAOI2011]Problem b(莫比乌斯反演,分块,容斥)
题目链接 题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。和HDU1695基本是类似的,这道题如果还是使用之前的方法计算f(k)=∑k|du(dk)F(d)=∑k|du(dk)⌊Bd⌋⌊Dd⌋f(k) = \sum\limits_{k|d} {u({d \over k})F(d) = \sum原创 2016-11-02 11:28:01 · 309 阅读 · 0 评论 -
BZOJ 2818: Gcd (莫比乌斯反演)
题目链接 题意:给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对.会了上一道题,那么这道题就是枚举[1,N]的素数,然后每个素数跑一遍就好了 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; #define cl(a,b) mem原创 2016-11-02 12:47:35 · 317 阅读 · 0 评论 -
POJ 3090 Visible Lattice Points(莫比乌斯反演)
题目链接 题意:给出一个n*n的格点,从原点发射出的光线,能够照到的点的个数。 其实就是计算gcd==1 和gcd==0(2个坐标轴)gcd==1直接莫比乌斯反演做好了,小数据不用分块优化也可以 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; #define cl原创 2016-11-02 14:03:46 · 362 阅读 · 0 评论 -
SPOJ 7001 Visible Lattice Points(莫比乌斯反演)
题目链接 题意:三维空间,从原点能看到哪些点,也就是gcd(x,y,z)==1 莫比乌斯反演计算即可 定义:f(x):gcd(x,y,z)==kf(x):\gcd (x,y,z) = = k的个数,F(k):gcd(x,y,z)=kF(k):\gcd (x,y,z) = k的倍数的个数,那么 F(n)=∑n|df(d)F(n) = \sum\limits_{n|d} {f(d)} f(原创 2016-11-02 14:47:45 · 293 阅读 · 0 评论