基础莫反,推式子。
「SPOJ 5971」LCMSUM
SPOJ LCMSUM
T 组数据,每次求:
i=1∑nlcm(i,n)
T≤105,n≤106
====i=1∑nlcm(i,n)i=1∑ngcd(i,n)i×n21(i=1∑n−1gcd(i,n)i×n+i=n−1∑1gcd(i,n)i×n)+n21(i=1∑n−1gcd(i,n)i×n+i=n−1∑1gcd(n−i,n)i×n)+n21i=1∑ngcd(i,n)n2+2n
考虑相同的 gcd(i,n) 一起计算,gcd(i,n)=d 的 i 有 φ(dn) 个。
==21d∣n∑dn2φ(dn)+2n2nd∣n∑dnφ(dn)+2n2n⎝⎛d∣n∑d⋅φ(d)⎠⎞+2n
设:
f(n)=d∣n∑d⋅φ(d)
令
n=p1c1⋅p2c2⋯pkck
考虑 f(pc),其约数只有 p0,p1,…,pc
f(pc)=i=0∑cpi⋅φ(pi)=i=0∑cp2i−1⋅(p−1)
考虑 f(p1c1⋅p2c2),其中 gcd(p1,p2)=1
f(p1c1⋅p2c2)====d1∣p1c1∑d2∣p2c2∑d1⋅d2⋅φ(d1⋅d2)d1∣p1c1∑d2∣p2c2∑d1φ(d1)⋅d2φ(d2)d1∣p1c1∑d1φ(d1)⋅d2∣p2c2∑d2φ(d2)f(p1c1)⋅f(p2c2)
考虑线性筛筛 f(n) 。首先有 f(pc)=f(pc−1)+p2c−1(p−1),再考虑由 f(i),f(p) 推 f(i⋅p)。
若 gcd(i,p)=1:
f(i⋅p)=f(i)⋅f(p)
若 p∣i,令 i=pc−1×i′,注意到线性筛中 p 是 p×i 最小的素数,再额外维护一个 cn 表是 n 中最小的素数的次数即可。
Crash的数字表格
Crash的数字表格
求:
i=1∑nj=1∑mlcm(i,j)(mod20101009)
n,m≤107
====i=1∑nj=1∑mgcd(i,j)i×ji=1∑nj=1∑md∣i,d∣j,gcd(di,dj)=1∑di×jd=1∑ni=1∑⌊n/d⌋j=1∑⌊m/d⌋[gcd(i,j)=1]did×jdd=1∑ndi=1∑⌊n/d⌋j=1∑⌊m/d⌋[gcd(i,j)=1]⋅i⋅j
令 f(n,m)=∑i=1n∑j=1m[gcd(i,j)=1]⋅i⋅j
f(n,m)====i=1∑nj=1∑mϵ(gcd(i,j))⋅i⋅ji=1∑nj=1∑md∣gcd(i,j)∑μ(d)⋅i⋅ji=1∑nj=1∑md∣i,d∣j∑μ(d)⋅i⋅jd=1∑min(n,m)μ(d)⋅d2i=1∑⌊n/d⌋j=1∑⌊m/d⌋i⋅j
令 g(x)=μ(x)⋅x2,线性筛可求;令 h(n,m)=∑i=1n∑j=1mi⋅j=4ij(1+i)(1+j)
f(n,m)=d=1∑min(n,m)g(d)⋅h(⌊dn⌋,⌊dm⌋)
预处理 g(n) 前缀和,数论分块 f(n,m) 在 O(n) 内可求。
原式:
d=1∑nd⋅f(⌊dn⌋,⌊dm⌋)
同样数论分块,算 O(n) 次 f,总复杂度 O(n)。
「SDOI2015」约数个数和
T 祖数据,求
i=1∑nj=1∑mσ0(ij)
T,n,m≤50000
(σ0(x) 表 x 约数个数)
有性质:
σ0(ij)=x∣i∑y∣j∑[gcd(x,y)=1]
那么:
σ0(nm)=====x∣n∑y∣m∑[gcd(x,y)=1]x∣n∑y∣m∑d∣gcd(x,y)∑μ(d)x∣n∑y∣m∑d∣x,d∣y∑μ(d)d=1∑nμ(d)d∣x,x∣n∑d∣y,y∣m∑1d∣gcd(n,m)∑μ(d)⋅σ0(dn)⋅σ0(dm)
回到原式:
i=1∑nj=1∑mσ0(ij)==i=1∑nj=1∑md∣i,d∣j∑μ(d)⋅σ0(di)⋅σ0(dj)d=1∑min(n,m)μ(d)i=1∑⌊n/d⌋j=1∑⌊m/d⌋σ0(i)σ0(j)
令 s(n)=∑i=1nσ0(i),那么
d=1∑min(n,m)μ(d)s(⌊dn⌋)s(⌊dm⌋)
s(n) 可预处理,每次求答案数论分块即可,总复杂度 O(n+Tn)
简单的数学题
luogu-P3768 简单的数学题
求
i=1∑nj=1∑nijgcd(i,j)(modp)
n≤1010,5×108≤p≤1.1×109,p为质数
用 φ∗1=id 反演:
===i=1∑nj=1∑nijgcd(i,j)i=1∑nj=1∑nijd∣gcd(i,j)∑φ(d)i=1∑nj=1∑nijd∣i,d∣j∑φ(d)d=1∑nφ(d)d2i=1∑⌊n/d⌋j=1∑⌊n/d⌋ij
令
s(n)=i=1∑nj=1∑nij=4n2(n+1)2
O(1) 可求。带回原式:
d=1∑nφ(d)d2⋅s(⌊n/d⌋)
可以数论分块 O(n) ,但是需要 1010 范围的 φ(d)d2,需要杜教筛。
具体的,令 f(n)=φ(n)n2=(id2φ)(n),F(n)=∑i=1nf(i),令 g(n)=(id2)(n),G(n)=∑i=1ng(i):
h(n)=(f∗g)(n)=d∣n∑d2φ(d)⋅d2n2=n2d∣n∑φ(d)=n3
H(n)=i=1∑nh(i)=i=1∑ni3=41n2(n+1)2
G(n)=i=1∑ng(i)=i=1∑ni2=61n(n+1)(2n+1)
杜教筛:
g(1)F(n)=H(n)−d=2∑ng(d)F(⌊n/d⌋)