模板 - 数学 - 数论 - 莫比乌斯反演 - 2

示例:

1.经典问题 求 $f(x,n,m)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==x]$ :

答案: $f(x,n,m) = \sum\limits_{k=1}\mu(k){\lfloor{\frac{n}{kx}}}\rfloor{\lfloor{\frac{m}{kx}}\rfloor}$

构造: $F(x,n,m) = \sum\limits_{x|d}f(d) = \sum\limits_{k=1}f(kx) =\sum\limits_{k=1}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==kx] = {\lfloor{\frac{n}{x}}}\rfloor{\lfloor{\frac{m}{x}}\rfloor}$ (只要 $i,j$ 都是 $x$ 的倍数, $gcd(i,j)$ 一定是某个 $x$ 的 $k$ 倍)

反演: $f(x,n,m) = \sum\limits_{x|d}\mu(\frac{d}{x})F(d) = \sum\limits_{k=1}\mu(k)F(kx) = \sum\limits_{k=1}\mu(k){\lfloor{\frac{n}{kx}}}\rfloor{\lfloor{\frac{m}{kx}}\rfloor}$

当 $kx>min(n,m)$ 的时候 $f(kx)=0$

当 $x=1$ 时,代入公式得 $f(1,n,m) = \sum\limits_{k=1}\mu(k){\lfloor{\frac{n}{k}}}\rfloor{\lfloor{\frac{m}{k}}\rfloor}$ ,所以 $f(x,n,m)=f(1,\lfloor\frac{n}{x}\rfloor,\lfloor\frac{m}{x}\rfloor)$

2.经典问题求 $f_2(n,m) = \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)$ :

答案:$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j) = \sum\limits_{x=1}^{}\mu(x){\lfloor{\frac{n}{kx}}}\rfloor{\lfloor{\frac{m}{kx}}\rfloor}$

这一次我们要求所有的 gcd 的和,显然所求为 $f_2(n,m) = \sum\limits_{x=1}xf(x,n,m)$ 。也就是所有的 gcd 的个数乘上这个gcd本身的值。

$f_2(n,m) = \sum\limits_{x=1}xf(x,n,m) = \sum\limits_{x=1}xf(1,\lfloor\frac{n}{x}\rfloor,\lfloor\frac{m}{x}\rfloor) = \sum\limits_{x=1}x \sum\limits_{k=1}\mu(k){\lfloor{\frac{n}{k}}}\rfloor{\lfloor{\frac{m}{k}}\rfloor}$

3.求 $f=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)^k$

答案:$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}gcd(i,j)^k = \sum\limits_{d=1}^{n}d^k\sum\limits_{x=1}^{\lfloor{\frac{n}{d}}\rfloor}\mu(x){\lfloor{\frac{n}{dx}}}\rfloor{\lfloor{\frac{m}{dx}}\rfloor}$

第1题算出 $f_2(x)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[gcd(i,j)==x]$ ,这一次我们要求所有的 gcd 的k次方,显然所求为 $f=\sum\limits_{x=1}x^kf_2(x)$ 。也就是所有的 gcd 的个数乘上这个 gcd 的 k 次方值。

4.求给定的 n 个数中有多少个四元组 (a,b,c,d) 的 gcd==1 :

f(t) = 求给定的 n 个数中有多少个四元组 (a,b,c,d) 的 gcd==t ,

F(t) = 求给定的 n 个数中有多少个四元组 (a,b,c,d) 的 gcd==kt 。

那么我们要求 f(1) ,应用倍数公式后,只要快速求解每一个 F(t) 就足够了。由于 k 是任意的,所以 gcd 被我们去掉了,我们只需要求 t 的倍数有m个,然后 $C_m^4$ 就是 F(t)。



参考资料:

https://blog.csdn.net/jk_chen_acmer/article/details/82712276

原文地址:https://www.cnblogs.com/Yinku/p/10494980.html

时间: 2024-10-02 20:59:42

模板 - 数学 - 数论 - 莫比乌斯反演 - 2的相关文章

【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛

题目描述 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求Sigma(f(i)),其中1<=i<=N”,其中 表示i的约数个数.他现在长大了,题目也变难了. 求如下表达式的值: 其中f(ij)表示ij的约数个数. 他发现答案有点大,只需要输出模1000000007的值. 输入 第一行一个整数n. 输出 一行一个整数ans,表示答案模1000000007的值. 样例输入 2 样例输出 8 题解 莫比乌斯反演+杜教筛 首先有个神奇

【bzoj3601】一个人的数论 莫比乌斯反演+高斯消元

题目描述 题解 莫比乌斯反演+高斯消元 (前方高能:所有题目中给出的幂次d,公式里为了防止混淆,均使用了k代替) #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; const ll mod = 1000000007; ll a[110][110] , p[1010] , v[1010]; ll pow(ll x , ll

[SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演

7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no other lat

学习笔记--数论--莫比乌斯反演初认识

前言 本文只是用比较通俗的例子让大家了解一下什么是莫比乌斯反演,其中说明 (明明都是瞎猜)可能有纰漏.本人也是个蒟蒻,未能给出珂学证明,还望多多指教. 理论基础 "|"符号表示整除, a|b 表示b被a整除,也就是b有a这个因数,b=ka (k∈N). "∑ "求和符号 是什么 请先看这个例子: 假设有两个函数F(n),f(d),且d∈{x| x|n(即n被d整除)} 并有以下关系:F(n)等于所有f(d)之和. 比如:6能被1,2,3,6整除,所以F(6)=f(1

[bzoj3601] 一个人的数论 [莫比乌斯反演+高斯消元]

题面 传送门 思路 这题妙啊 先把式子摆出来 $f_n(d)=\sum_{i=1}^n[gcd(i,n)==1]i^d$ 这个$gcd$看着碍眼,我们把它反演掉 $f_n(d)=\sum_{i=1}^n\sum_{j|i,j|n}\mu(j)i^d=\sum_{j|n}\mu(j)\sum_{i=1}^{\frac{n}{j}}(ij)^d=\sum_{j|n}\mu(j)j^d\sum_{i=1}^{\frac{n}{j}}i^d$ 那么最后面这个东西就是个自然数幂求和了 在这篇关于斯特林数的

组合 数论 莫比乌斯反演 hdu1695

题解:https://blog.csdn.net/lixuepeng_001/article/details/50577932 题意:给定范围1-b和1-d求(i,j)=k的数对的数量 #include<cstdio> #include<iostream> #include<cstdlib> #include<cmath> #include<cstring> using namespace std; const int MAXN = 100000

模板 - 数学 - 数论 - 线性筛

线性筛质数,可以通过输出ptop之后调整p数组的大小.pm[i]表示i的最小质因子,pk[i]表示含有i的最小质因子的幂.其他的积性函数主要依靠pk的值来求解,比如现在枚举的是t,求出了他的最小质因子的幂pk[t],那么t/pk[t]与pk[t]显然是互质的.当t==pk[t]时,则t是p[j]的幂次,一般积性函数在质数的幂次都要特殊求解,不过欧拉函数和莫比乌斯函数可以直接从低一级的幂次转移过来.当t!=pk[t]时,直接分解成两个互质的数的乘积.要注意这个算法的空间消耗巨大. 1ex内的质数数

【bzoj 4176】 Lucas的数论 莫比乌斯反演(杜教筛)

Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目“求Sigma(f(i)),其中1<=i<=N”,其中 表示i的约数个数.他现在长大了,题目也变难了. 求如下表达式的值: 一行一个整数ans,表示答案模1000000007的值. Sample Input 2 Sample Output 8 HINT 对于100%的数据n <= 10^9. 题解: 解锁新技能:杜教筛. 再复习一下: 若$F(n)=\s

BZOJ 4176 Lucas的数论 莫比乌斯反演

题目大意:给定n(n≤109),求∑ni=1∑nj=1d(ij) 推错式子害死人... 由d|ij等价于dgcd(i,d)|j可得 ∑ni=1∑nj=1d(ij) =∑ni=1∑n2d=1?n?gcd(i,d)d? =∑nd=1∑?nd?i=1∑?n2d?j=1?nj?[gcd(i,j)=1] =∑nd=1∑?nd?i=1∑nj=1?nj?[gcd(i,j)=1] =∑nd=1∑?nd?i=1∑nj=1?nj?∑k|i,k|jμ(k) =∑nk=1μ(k)(∑?nk?d=1?nkd?)2 O(n