Number Theory

因为github上不支持对数学公式的渲染,所以就放到了csdn上,感觉还不错.(持续更新)

Number Theory

(目录坏掉了TAT)


FFT

推荐博客

FFT有很多形式,但最终都可以归结到这一种:

h = f ⊗ g : h ( x ) = ∑ i = 0 x f ( i ) × g ( x − i ) h=f⊗g:h(x)=\sum_{i=0}^xf(i)\times g(x-i) h=fg:h(x)=i=0xf(i)×g(xi)

hdu1402 f[i]=s’[i]-‘0’,g[i]=t’[i]-‘0’,h=f⊗g,逆序输出h[i],h[i]含义:第i位乘积和 AC代码

bzoj3527 f [ f l e n − 1 − i ] = q i , g [ i ] = 1 ( n − 1 − i ) × ∣ n − 1 − i ∣ , g [ n − 1 ] = 0. f[flen-1-i]=q_i,g[i]=\frac{1}{(n-1-i)\times|n-1-i|},g[n-1]=0. f[flen1i]=qi,g[i]=(n1i)×n1i1,g[n1]=0.AC代码

h = f ⊗ g , h [ k + f l e n − 1 ] = ∑ i = 0 f l e n − 1 f [ f l e n − 1 − i ] g [ i + k ] h=f⊗g,h[k+flen-1]=\sum_{i=0}^{flen-1}f[flen-1-i]g[i+k] h=fg,h[k+flen1]=i=0flen1f[flen1i]g[i+k]
uvalive6886 f[0]=1,f[a[i]]=1,h=f⊗f,f[i]的含义是走0或1步到达i的方案数,h[i]的含义是走0~2步到达i的方案数 AC代码

hdu4609 f[a[i]]=c[i]代表有c[i]个方案选出长度为a[i]树枝,h=f⊗f,h[i] :选两个树枝长度为i有多少种方案 AC代码

直接的h[i]=(b,c)的方案数,a是待会要枚举的a[i],b和c是被加的树枝长,需要减去一些东西

1.减去b=c情况,即枚举每根树枝h[a[i]*2]–

2.减去b>c情况,即每一个h[i]/=2

剩下的就是b<c的情况,枚举a[i],假设a>c,总数为
∑ i = a [ i ] + 1 ∞ h [ i ] \sum_{i=a[i]+1}^\infty{h[i]} i=a[i]+1h[i]
,需要减去如下情况

1.a=b<c 或 b<a=c,一共有n-1种情况

2.a<b<c,一共有
C n − 1 − i 2 = ( n − 1 − i ) ( n − 2 − i ) 2 C_{n-1-i}^2=\frac{(n-1-i)(n-2-i)}{2} Cn1i2=2(n1i)(n2i)
种情况

3.b<a<c,一共有i*(n-1-i)种情况

把所有情况数相加就是答案

uvalive4671 求A串中alen-blen+1个长如B串的子串和B串的Hamming距离小于等于k的种数 AC代码

首先需要求出a串中长如B串的子串们与B串的Hamming距离

定 义 f ( x ) 是 a 串 中 以 x 为 起 始 下 标 长 如 B 串 的 子 串 与 B 串 的 H a m m i n g 距 离 定义f(x)是a串中以x为起始下标长如B串的子串与B串的Hamming距离 f(x)axBBHamming
即 f ( x ) = ∑ i = 0 b l e n − 1 [ A ( x + i ) ! = B ( i ) ] 即f(x)=\sum_{i=0}^{blen-1}[A(x+i)!=B(i)] f(x)=i=0blen1[A(x+i)!=B(i)]
设 i = b l e n − 1 − i , C : r e v e r s e ( B , B + b l e n ) , そ れ で は 那 么 设i=blen-1-i,C:reverse(B,B+blen),\frac{それでは}{那么} i=blen1i,C:reverse(B,B+blen),
f ( x ) = ∑ b l e n − i = 0 b l e n − 1 [ A ( x + b l e n − 1 − i ) ! = B ( b l e n − 1 − i ) ] f(x)=\sum_{blen-i=0}^{blen-1}[A(x+blen-1-i)!=B(blen-1-i)] f(x)=bleni=0blen1[A(x+blen1i)!=B(blen1i)]
f ( x ) = ∑ i = 0 b l e n − 1 [ A ( x + b l e n − 1 − i ) ! = C ( i ) ] , 根 据 F F T 形 式 有 : f(x)=\sum_{i=0}^{blen-1}[A(x+blen-1-i)!=C(i)],根据FFT形式有: f(x)=i=0blen1[A(x+blen1i)!=C(i)],FFT:
f ( x ) = ( A ⊗ C ) ( x + b l e n − 1 ) f(x)=(A⊗C)(x+blen-1) f(x)=(AC)(x+blen1)
现 在 的 问 题 是 如 何 计 算 A ⊗ C , 可 以 拆 分 为 两 个 卷 积 的 和 : 现在的问题是如何计算A⊗C,可以拆分为两个卷积的和: AC,:
A ⊗ C = ( a ( i ) = = ′ a ′ ) ⊗ ( b ( i ) = = ′ b ′ ) + ( a ( i ) = = ′ b ′ ) ⊗ ( b ( i ) = = ′ a ′ ) A⊗C=(a(i)==&#x27;a&#x27;)⊗(b(i)==&#x27;b&#x27;)+(a(i)==&#x27;b&#x27;)⊗(b(i)==&#x27;a&#x27;) AC=(a(i)==a)(b(i)==b)+(a(i)==b)(b(i)==a)

然后在用字符串Hash求不重复合法子串个数(不是重点,见代码)

jisuanke26219 剪刀石头布加强版,小串最多赢大串几次 AC代码

定 义 w i n n u m ( x , y , z ) = ( a ( i ) = = x ) ⊗ ( b ( i ) = = y ) ( z + a l e n − 1 ) , a 是 小 串 定义winnum(x,y,z)=(a(i)==x)⊗(b(i)==y)(z+alen-1),a是小串 winnum(x,y,z)=(a(i)==x)(b(i)==y)(z+alen1),a
x = &quot; S L P K R S L P K R &quot; , y = &quot; P P R R L L K K S S &quot; , 根 据 游 戏 规 则 所 得 x=&quot;SLPKRSLPKR&quot;,y=&quot;PPRRLLKKSS&quot;,根据游戏规则所得 x="SLPKRSLPKR",y="PPRRLLKKSS",
则 A n s = max ⁡ i = 0 b l e n − a l e n + 1 { ∑ j = 0 9 w i n n u m ( x [ j ] , y [ j ] , i ) } 则Ans=\max_{i=0}^{blen-alen+1}\{\sum_{j=0}^9winnum(x[j],y[j],i)\} Ans=i=0maxblenalen+1{j=09winnum(x[j],y[j],i)}

克制关系见下图:(S:紫剪刀,K:蓝斯波克,L:绿蜥蜴,R:粉石头,P:黄布)

克制关系

cf954i 最小次数本质是求6点图的联通分量个数,用30次FFT和并查集来确定答案,每一个答案是a的子串和b串对应位置的两个点相连之后,6-联通块数量. AC代码推荐博客的第6个题,说的很明白

bzoj4827 求的是 min ⁡ C = − m m { min ⁡ k = 0 l e n − 1 { ∑ i = 0 l e n − 1 x i 2 + y i + k 2 − 2 x i y i + k + C 2 + 2 C x i − 2 C y i + k } } \min_{C=-m}^m\{\min_{k=0}^{len-1}\{\sum_{i=0}^{len-1}x_i^2+y_{i+k}^2-2x_iy_{i+k}+C^2+2Cx_i-2Cy_{i+k}\}\} minC=mm{mink=0len1{i=0len1xi2+yi+k22xiyi+k+C2+2Cxi2Cyi+k}}AC代码

由于 y 0 + k 到 y l e n − 1 + k y_{0+k}到y_{len-1+k} y0+kylen1+k的数字和 y 0 到 y l e n − 1 y_0到y_{len-1} y0ylen1的数字只是顺序上的差别,因此有:

A n s = min ⁡ C = − m m { min ⁡ k = 0 l e n − 1 { ∑ i = 0 l e n − 1 x i 2 + y i 2 − 2 x i y i + k + C 2 + 2 C x i − 2 C y i } } Ans=\min_{C=-m}^m\{\min_{k=0}^{len-1}\{\sum_{i=0}^{len-1}x_i^2+y_i^2-2x_iy_{i+k}+C^2+2Cx_i-2Cy_i\}\} Ans=C=mminm{k=0minlen1{i=0len1xi2+yi22xiyi+k+C2+2Cxi2Cyi}}

A n s = ∑ i = 0 l e n − 1 ( x i 2 + y i 2 ) − 2 max ⁡ k = 0 l e n − 1 { ∑ i = 0 l e n − 1 x i y i + k } + min ⁡ C = − m m { l e n × C 2 + 2 C ∑ i = 0 l e n − 1 ( x i − y i ) } Ans=\sum_{i=0}^{len-1}(x_i^2+y_i^2)-2\max_{k=0}^{len-1}\{\sum_{i=0}^{len-1}x_iy_{i+k}\}+\min_{C=-m}^m\{len\times C^2+2C\sum_{i=0}^{len-1}(x_i-y_i)\} Ans=i=0len1(xi2+yi2)2k=0maxlen1{i=0len1xiyi+k}+C=mminm{len×C2+2Ci=0len1(xiyi)}

其中  ∑ i = 0 l e n − 1 ( x i 2 + y i 2 ) \sum_{i=0}^{len-1}(x_i^2+y_i^2) i=0len1(xi2+yi2) 和  ∑ i = 0 l e n − 1 ( x i − y i ) \sum_{i=0}^{len-1}(x_i-y_i) i=0len1(xiyi) O(n)能算,

关键是 max ⁡ k = 0 l e n − 1 { ∑ i = 0 l e n − 1 x i y i + k } \max_{k=0}^{len-1}\{\sum_{i=0}^{len-1}x_iy_{i+k}\} maxk=0len1{i=0len1xiyi+k}如何使用FFT计算

设x:rev(x,x+len),则上式可写成 max ⁡ k = 0 l e n − 1 { ∑ i = 0 l e n − 1 x l e n − 1 − i y i + k } \max_{k=0}^{len-1}\{\sum_{i=0}^{len-1}x_{len-1-i}y_{i+k}\} maxk=0len1{i=0len1xlen1iyi+k}

即  max ⁡ k = 0 l e n − 1 { x ⊗ y ( l e n − 1 + k ) } \max_{k=0}^{len-1}\{x⊗y(len-1+k)\} maxk=0len1{xy(len1+k)} ,O(nlogn)能算

NAIPC2016E f(i)=s(len-1-i),g(i)=s(i),h=f⊗g,依次输出h[i], i ∈ [ l e n , 2 l e n − 2 ] i\in[len,2len-2] i[len,2len2],h[i+len-1]就是距离为i的逆序对个数 AC代码

线性筛

推荐博客

nowcoder27E f = i d k × μ f=id^k\times\mu f=idk×μAC代码

f ( 1 ) = 0 , f ( p ) = p k − 1 , f ( p k ) = f ( p k − 1 ) × p k f(1)=0,f(p)=p^k-1,f(p^k)=f(p^{k-1})\times p^k f(1)=0,f(p)=pk1,f(pk)=f(pk1)×pk

莫比乌斯反演: ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k ] \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k] i=1nj=1m[gcd(i,j)==k]

luogu3455 ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k ]   ( T ∈ [ 1 , 50 &ThinSpace; 000 ] { n , m ∈ [ 1 , 50 &ThinSpace; 000 ] } ) \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k] (T\in[1,50\,000]\{n,m\in[1,50\,000]\}) i=1nj=1m[gcd(i,j)==k](T[1,50000]{n,m[1,50000]})AC代码

hdu1695 ∑ i = 1 n ∑ j = i + 1 m [ gcd ⁡ ( i , j ) = = k ]   ( a , b ∈ [ 1 , 100 &ThinSpace; 000 ] , k ∈ [ 0 , 100 &ThinSpace; 000 ] ) \sum_{i=1}^n\sum_{j=i+1}^m[\gcd(i,j)==k] (a,b\in[1,100\,000],k\in[0,100\,000]) i=1nj=i+1m[gcd(i,j)==k](a,b[1,100000],k[0,100000])AC代码

bzoj2301 ∑ i = a b ∑ j = c d [ gcd ⁡ ( i , j ) = = k ]   ( n ∈ [ 1 , 50 &ThinSpace; 000 ] { 1 ≤ a ≤ b ≤ 50 &ThinSpace; 000 , 1 ≤ c ≤ d ≤ 50 &ThinSpace; 000 } ) \sum_{i=a}^b\sum_{j=c}^d[\gcd(i,j)==k] (n\in[1,50\,000]\{1\leq a\leq b\leq 50\,000,1\leq c\leq d\leq 50\,000\}) i=abj=cd[gcd(i,j)==k](n[1,50000]{1ab50000,1cd50000})AC代码

设 f ( k , n , m ) = ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k ] 设f(k,n,m)=\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k] f(k,n,m)=i=1nj=1m[gcd(i,j)==k]

倍 数 反 演 し た い 试 图 倍 数 反 演 \frac{倍数反演したい}{试图倍数反演}
设 g ( k , n , m ) = ∑ i = 1 ∞ f ( i k , n , m ) 设g(k,n,m)=\sum_{i=1}^\infty f(ik,n,m) g(k,n,m)=i=1f(ik,n,m)
g ( k , n , m ) = ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) % k = = 0 ] g(k,n,m)=\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)\%k==0] g(k,n,m)=i=1nj=1m[gcd(i,j)%k==0]
做 代 换 i = a k , j = b k 做代换i=ak,j=bk i=ak,j=bk
そ れ で は 那 么 g ( k , n , m ) = ∑ a k = 1 n ∑ b k = 1 m [ gcd ⁡ ( a k , b k ) % k = = 0 ] \frac{それでは}{那么}g(k,n,m)=\sum_{ak=1}^n\sum_{bk=1}^m[\gcd(ak,bk)\%k==0] g(k,n,m)=ak=1nbk=1m[gcd(ak,bk)%k==0]
そ し て 然 后 g ( k , n , m ) = ∑ a = 1 n / k ∑ b = 1 m / k 1 \frac{そして}{然后}g(k,n,m)=\sum_{a=1}^{n/k}\sum_{b=1}^{m/k}1 g(k,n,m)=a=1n/kb=1m/k1
だ か ら 所 以 g ( k , n , m ) = ⌊ n k ⌋ × ⌊ m k ⌋ \frac{だから}{所以}g(k,n,m)=⌊\frac{n}{k}⌋\times ⌊\frac{m}{k}⌋ g(k,n,m)=kn×km
倍 数 反 演 成 功 f ( k , n , m ) = ∑ i = 1 ∞ g ( i k , n , m ) × μ ( i ) 倍数反演成功f(k,n,m)=\sum_{i=1}^\infty{g(ik,n,m)\times\mu(i)} f(k,n,m)=i=1g(ik,n,m)×μ(i)
f ( k , n , m ) = ∑ i = 1 ∞ ⌊ n i k ⌋ × ⌊ m i k ⌋ × μ ( i ) f(k,n,m)=\sum_{i=1}^\infty{\lfloor\frac{n}{ik}\rfloor\times\lfloor\frac{m}{ik}\rfloor\times\mu(i)} f(k,n,m)=i=1ikn×ikm×μ(i)
だ っ て 因 为 ⌊ n i k ⌋ ≥ 1 才 会 对 总 和 有 贡 献 , だ か ら 所 以 i ≤ ⌊ n k ⌋ \frac{だって}{因为}\lfloor\frac{n}{ik}\rfloor\geq 1才会对总和有贡献,\frac{だから}{所以}i\leq\lfloor\frac{n}{k}\rfloor ikn1,ikn
f ( k , n , m ) = ∑ i = 1 n / k ⌊ n i k ⌋ × ⌊ m i k ⌋ × μ ( i )   ⇐ 可 整 除 分 块 O ( n ) f(k,n,m)=\sum_{i=1}^{n/k}{\lfloor\frac{n}{ik}\rfloor\times\lfloor\frac{m}{ik}\rfloor\times\mu(i)}  \Leftarrow 可整除分块O(\sqrt{n}) f(k,n,m)=i=1n/kikn×ikm×μ(i)O(n )
上 式 O ( n ) 可 算 , 需 预 处 理 出 μ ( i ) 的 前 缀 和 O ( n ) 上式O(\sqrt{n})可算,需预处理出μ(i)的前缀和O(n) O(n ),μ(i)O(n)

莫比乌斯反演: ∑ b 1 = 1 a 1 ∑ b 2 = 1 a 2 . . . ∑ b n = 1 a n [ gcd ⁡ ( b 1 , b 2 , . . . , b n ) ≥ 2 ] \sum_{b_1=1}^{a_1}\sum_{b_2=1}^{a_2}...\sum_{b_n=1}^{a_n}[\gcd(b_1,b_2,...,b_n)\geq 2] b1=1a1b2=1a2...bn=1an[gcd(b1,b2,...,bn)2]

hdu6053 ∑ b 1 = 1 a 1 ∑ b 2 = 1 a 2 . . . ∑ b n = 1 a n [ gcd ⁡ ( b 1 , b 2 , . . . , b n ) ≥ 2 ]   ( T ∈ [ 1 , 10 ] { n , a i ∈ [ 1 , 100 &ThinSpace; 000 ] } ) \sum_{b_1=1}^{a_1}\sum_{b_2=1}^{a_2}...\sum_{b_n=1}^{a_n}[\gcd(b_1,b_2,...,b_n)\geq 2] (T\in [1,10]\{n,a_i\in[1,100\,000]\}) b1=1a1b2=1a2...bn=1an[gcd(b1,b2,...,bn)2](T[1,10]{n,ai[1,100000]})AC代码

设 f ( k ) = ∑ b 1 = 1 a 1 ∑ b 2 = 1 a 2 . . . ∑ b n = 1 a n [ gcd ⁡ ( b 1 , b 2 , . . . , b n ) % k = = 0 ] 设f(k)=\sum_{b_1=1}^{a_1}\sum_{b_2=1}^{a_2}...\sum_{b_n=1}^{a_n}[\gcd(b_1,b_2,...,b_n)\%k==0] f(k)=b1=1a1b2=1a2...bn=1an[gcd(b1,b2,...,bn)%k==0]
根 据 容 斥 原 理 , a n s = ∑ i = 2 ∞ − μ ( i ) × f ( i ) 根据容斥原理,ans=\sum_{i=2}^\infty-\mu(i)\times f(i) ,ans=i=2μ(i)×f(i)
显 然 f ( k ) = ∏ i = 1 n ⌊ a i k ⌋ , け れ ど 但 是 并 不 好 算 显然f(k)=\prod_{i=1}^n\lfloor\frac{a_i}{k}\rfloor,\frac{けれど}{但是}并不好算 f(k)=i=1nkai,

f ( k ) = ∏ i = 1 m a x { a } / k i g ( i , d ) f(k)=\prod_{i=1}^{max\{a\}/k}i^{g(i,d)} f(k)=i=1max{a}/kig(i,d)
g ( x , y ) = ∑ i = 1 n [ ⌊ a i y ⌋ = = x ] g(x,y)=\sum_{i=1}^n[\lfloor\frac{a_i}{y}\rfloor==x] g(x,y)=i=1n[yai==x]
g ( x , y ) = ∑ i = 1 n [ x y ≤ a i &lt; x y + y ] g(x,y)=\sum_{i=1}^n[xy\leq a_i\lt xy+y] g(x,y)=i=1n[xyai<xy+y]
だ か ら 所 以 需 要 预 处 理 出 h ( x ) = ∑ i = 1 n [ a i &lt; x ] \frac{だから}{所以}需要预处理出h(x)=\sum_{i=1}^n[a_i\lt x] h(x)=i=1n[ai<x]
そ し て 然 后 g ( x , y ) = h ( x y + y ) − h ( x y ) \frac{そして}{然后}g(x,y)=h(xy+y)-h(xy) g(x,y)=h(xy+y)h(xy)
だ か ら 所 以 f ( k ) = ∏ i = 1 m a x { a } / k i h ( i d + d ) − h ( i d ) \frac{だから}{所以}f(k)=\prod_{i=1}^{max\{a\}/k}i^{h(id+d)-h(id)} f(k)=i=1max{a}/kih(id+d)h(id)
a n s = ∑ j = 2 ∞ − μ ( j ) × ∏ i = 1 m a x { a } / j i h ( i d + d ) − h ( i d ) ans=\sum_{j=2}^\infty-\mu(j)\times\prod_{i=1}^{max\{a\}/j}i^{h(id+d)-h(id)} ans=j=2μ(j)×i=1max{a}/jih(id+d)h(id)
だ つ て 因 为 m a x { a } / j ≥ 1 , だ か ら 所 以 j ≤ m a x { a } \frac{だつて}{因为}max\{a\}/j\geq 1,\frac{だから}{所以}j\leq max\{a\} max{a}/j1,jmax{a}
a n s = ∑ j = 2 m a x { a } − μ ( j ) × ∏ i = 1 m a x { a } / j i h ( i d + d ) − h ( i d ) ans=\sum_{j=2}^{max\{a\}}-\mu(j)\times\prod_{i=1}^{max\{a\}/j}i^{h(id+d)-h(id)} ans=j=2max{a}μ(j)×i=1max{a}/jih(id+d)h(id)
上 式 O ( n l o g 2 n ) 可 算 , 需 预 处 理 出 μ ( i ) 和 h ( i ) O ( n ) 上式O(nlog^2n)可算,需预处理出\mu(i)和h(i)O(n) O(nlog2n),μ(i)h(i)O(n)

莫比乌斯反演: ∑ k = 1 ∞ ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k 2 ] \sum_{k=1}^\infty\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k^2] k=1i=1nj=1m[gcd(i,j)==k2]

hdu5663 nm- ∑ k = 1 ∞ ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k 2 ]   ( T ∈ [ 1 , 10 &ThinSpace; 000 ] { n , m ∈ [ 1 , 10 &ThinSpace; 000 &ThinSpace; 000 ] } ) \sum_{k=1}^\infty\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k^2] (T\in[1,10\,000]\{n,m\in[1,10\,000\,000]\}) k=1i=1nj=1m[gcd(i,j)==k2](T[1,10000]{n,m[1,10000000]})AC代码

a n s = ∑ k = 1 ∞ ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k 2 ] ans=\sum_{k=1}^\infty\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k^2] ans=k=1i=1nj=1m[gcd(i,j)==k2]
a n s = ∑ k = 1 ∞ ∑ d = 1 ∞ [ d = = k 2 ] ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k ] ans=\sum_{k=1}^\infty\sum_{d=1}^\infty[d==k^2]\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k] ans=k=1d=1[d==k2]i=1nj=1m[gcd(i,j)==k]
a n s = ∑ k = 1 ∞ ∑ d = 1 ∞ [ d = = k 2 ] × ∑ i = 1 n / d ⌊ n i d ⌋ × ⌊ m i d ⌋ × μ ( i ) ans=\sum_{k=1}^\infty\sum_{d=1}^\infty[d==k^2]\times\sum_{i=1}^{n/d}{\lfloor\frac{n}{id}\rfloor\times\lfloor\frac{m}{id}\rfloor\times\mu(i)} ans=k=1d=1[d==k2]×i=1n/didn×idm×μ(i)
设 f ( x ) = [ x 是 平 方 数 ] , そ れ で は 那 么 有 设f(x)=[x是平方数],\frac{それでは}{那么}有 f(x)=[x],
a n s = ∑ d = 1 ∞ f ( d ) × ∑ i = 1 n / d ⌊ n i d ⌋ × ⌊ m i d ⌋ × μ ( i ) ans=\sum_{d=1}^\infty f(d)\times\sum_{i=1}^{n/d}{\lfloor\frac{n}{id}\rfloor\times\lfloor\frac{m}{id}\rfloor\times\mu(i)} ans=d=1f(d)×i=1n/didn×idm×μ(i)
a n s = ∑ d = 1 ∞ ∑ i = 1 n / d f ( d ) × ⌊ n i d ⌋ × ⌊ m i d ⌋ × μ ( i ) ans=\sum_{d=1}^\infty\sum_{i=1}^{n/d}{f(d)\times\lfloor\frac{n}{id}\rfloor\times\lfloor\frac{m}{id}\rfloor\times\mu(i)} ans=d=1i=1n/df(d)×idn×idm×μ(i)
设 T = i d , そ し て 然 后 改 变 求 和 次 序 设T=id,\frac{そして}{然后}改变求和次序 T=id,
a n s = ∑ T = 1 ∞ ⌊ n T ⌋ × ⌊ m T ⌋ ∑ i ∣ T f ( T i ) × μ ( i ) ⇐ 可 整 除 分 块 O ( n ) ans=\sum_{T=1}^\infty\lfloor\frac{n}{T}\rfloor\times\lfloor\frac{m}{T}\rfloor\sum_{i\mid T}f(\frac{T}{i})\times\mu(i)\Leftarrow 可整除分块O(\sqrt{n}) ans=T=1Tn×TmiTf(iT)×μ(i)O(n )
上 式 O ( n ) 可 算 上式O(\sqrt{n})可算 O(n )

设 g ( T ) = ∑ i ∣ T f ( T i ) × μ ( i ) , g ( T ) 可 以 暴 力 筛 出 来 , 复 杂 度 是 O ( n ) 设g(T)=\sum_{i\mid T}f(\frac{T}{i})\times\mu(i),g(T)可以暴力筛出来,复杂度是O(n) g(T)=iTf(iT)×μ(i),g(T),O(n)

莫比乌斯反演: ∑ i = 1 n ∑ j = 1 m gcd ⁡ ( i , j ) \sum_{i=1}^n\sum_{j=1}^m\gcd(i,j) i=1nj=1mgcd(i,j)

bzoj2005 ∑ i = 1 n ∑ j = 1 m 2 × gcd ⁡ ( i , j ) − 1   ( n , m ∈ [ 1 , 100 &ThinSpace; 000 ] ) \sum_{i=1}^n\sum_{j=1}^m2\times\gcd(i,j)-1 (n,m\in[1,100\,000]) i=1nj=1m2×gcd(i,j)1(n,m[1,100000])AC代码

a n s = ∑ i = 1 n ∑ j = 1 m gcd ⁡ ( i , j ) ans=\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j) ans=i=1nj=1mgcd(i,j)
a n s = ∑ d = 1 n d ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = d ] ans=\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==d] ans=d=1ndi=1nj=1m[gcd(i,j)==d]
a n s = ∑ d = 1 n d ∑ i = 1 n / d ⌊ n i d ⌋ × ⌊ m i d ⌋ × μ ( i ) ans=\sum_{d=1}^nd\sum_{i=1}^{n/d}{\lfloor\frac{n}{id}\rfloor\times\lfloor\frac{m}{id}\rfloor\times\mu(i)} ans=d=1ndi=1n/didn×idm×μ(i)
设 f ( k , n , m ) = ∑ i = 1 n ∑ j = 1 m [ gcd ⁡ ( i , j ) = = k ] = ∑ i = 1 n / k ⌊ n i k ⌋ × ⌊ m i k ⌋ × μ ( i ) 设f(k,n,m)=\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)==k]=\sum_{i=1}^{n/k}{\lfloor\frac{n}{ik}\rfloor\times\lfloor\frac{m}{ik}\rfloor\times\mu(i)} f(k,n,m)=i=1nj=1m[gcd(i,j)==k]=i=1n/kikn×ikm×μ(i)
a n s = ∑ d = 1 n d × f ( 1 , ⌊ n d ⌋ , ⌊ n d ⌋ ) ans=\sum_{d=1}^nd\times f(1,\lfloor\frac{n}{d}\rfloor,\lfloor\frac{n}{d}\rfloor) ans=d=1nd×f(1,dn,dn)
O ( n ) 的 做 法 就 出 来 了 , 不 过 通 过 调 整 求 和 次 序 可 以 获 得 O ( n ) 的 做 法 O(n)的做法就出来了,不过通过调整求和次序可以获得O(\sqrt{n})的做法 O(n),O(n )
a n s = ∑ d = 1 n d ∑ i = 1 n / d ⌊ n i d ⌋ × ⌊ m i d ⌋ × μ ( i ) ans=\sum_{d=1}^nd\sum_{i=1}^{n/d}{\lfloor\frac{n}{id}\rfloor\times\lfloor\frac{m}{id}\rfloor\times\mu(i)} ans=d=1ndi=1n/didn×idm×μ(i)
设 T = i d , そ し て 然 后 交 换 求 和 次 序 为 ∑ T = 1 n ∑ i ∣ T 设T=id,\frac{そして}{然后}交换求和次序为\sum_{T=1}^n\sum_{i\mid T} T=id,T=1niT
a n s = ∑ T = 1 n ⌊ n T ⌋ × ⌊ m T ⌋ × ∑ i ∣ T μ ( i ) × ⌊ T i ⌋ ans=\sum_{T=1}^n{\lfloor\frac{n}{T}\rfloor\times\lfloor\frac{m}{T}\rfloor\times\sum_{i\mid T}\mu(i)\times\lfloor\frac{T}{i}\rfloor} ans=T=1nTn×Tm×iTμ(i)×iT
上 式 O ( n ) 可 算 , 需 要 预 处 理 出 ∑ i ∣ T μ ( i ) × ⌊ T i ⌋ , 可 以 用 线 性 筛 O ( n ) 时 间 求 出 上式O(\sqrt{n})可算,需要预处理出\sum_{i\mid T}\mu(i)\times\lfloor\frac{T}{i}\rfloor,可以用线性筛O(n)时间求出 O(n ),iTμ(i)×iT,线O(n)

设 f ( T ) = μ ( i ) × ⌊ T i ⌋ , 那 么 对 于 线 性 筛 有 如 下 式 子 设f(T)=\mu(i)\times\lfloor\frac{T}{i}\rfloor,那么对于线性筛有如下式子 f(T)=μ(i)×iT,线
f ( 1 ) = 1 , f ( p ) = p − 1 , f ( p k ) = p × f ( p k − 1 ) f(1)=1,f(p)=p-1,f(p^k)=p\times f(p^{k-1}) f(1)=1,f(p)=p1,f(pk)=p×f(pk1)

莫比乌斯反演: ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) i=1nj=1mlcm(i,j)

bzoj2154 ∑ i = 1 n ∑ j = 1 m l c m ( i , j )   ( n , m ∈ [ 1 , 10 &ThinSpace; 000 &ThinSpace; 000 ] ) \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) (n,m\in[1,10\,000\,000]) i=1nj=1mlcm(i,j)(n,m[1,10000000])AC代码

a n s = ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) ans=\sum_{i=1}^n\sum_{j=1}^mlcm(i,j) ans=i=1nj=1mlcm(i,j)
a n s = ∑ i = 1 n ∑ j = 1 m i j gcd ⁡ ( i , j ) ans=\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{\gcd(i,j)} ans=i=1nj=1mgcd(i,j)ij
a n s = ∑ d = 1 n ∑ i = 1 n ∑ j = 1 m i j d [ gcd ⁡ ( i , j ) = = d ] ans=\sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{d}[\gcd(i,j)==d] ans=d=1ni=1nj=1mdij[gcd(i,j)==d]
做 代 换 i = i d , j = j d 做代换i=id,j=jd i=id,j=jd
a n s = ∑ d = 1 n ∑ i d = 1 n ∑ j d = 1 m i d j d d [ gcd ⁡ ( i d , j d ) = = d ] ans=\sum_{d=1}^n\sum_{id=1}^n\sum_{jd=1}^m\frac{idjd}{d}[\gcd(id,jd)==d] ans=d=1nid=1njd=1mdidjd[gcd(id,jd)==d]
a n s = ∑ d = 1 n d ∑ i = 1 n / d ∑ j = 1 m / d i j [ gcd ⁡ ( i , j ) = = 1 ] ans=\sum_{d=1}^nd\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}ij[\gcd(i,j)==1] ans=d=1ndi=1n/dj=1m/dij[gcd(i,j)==1]
设 f ( k , n , m ) = ∑ i = 1 n ∑ j = 1 m i j × [ gcd ⁡ ( i , j ) = = k ] 设f(k,n,m)=\sum_{i=1}^n\sum_{j=1}^m{ij\times[\gcd(i,j)==k]} f(k,n,m)=i=1nj=1mij×[gcd(i,j)==k]

倍 数 反 演 し た い 试 图 倍 数 反 演 \frac{倍数反演したい}{试图倍数反演}
设 g ( k , n , m ) = ∑ i = 1 ∞ f ( i k , n , m ) 设g(k,n,m)=\sum_{i=1}^\infty f(ik,n,m) g(k,n,m)=i=1f(ik,n,m)
g ( k , n , m ) = ∑ i = 1 n ∑ j = 1 m i j × [ gcd ⁡ ( i , j ) % k = = 0 ] g(k,n,m)=\sum_{i=1}^n\sum_{j=1}^m{ij\times[\gcd(i,j)\%k==0]} g(k,n,m)=i=1nj=1mij×[gcd(i,j)%k==0]
そ れ で は 那 么 g ( k , n , m ) 可 以 か ん た ん 轻 易 算 出 \frac{それでは}{那么}g(k,n,m)可以\frac{かんたん}{轻易}算出 g(k,n,m)
/ / 做 代 换 i = i k , j = j k //做代换i=ik,j=jk //i=ik,j=jk
そ れ で は 那 么 g ( k , n , m ) = ∑ i k = 1 n ∑ j k = 1 m i k j k × [ gcd ⁡ ( i k , j k ) % k = = 0 ] \frac{それでは}{那么}g(k,n,m)=\sum_{ik=1}^n\sum_{jk=1}^m{ikjk\times[\gcd(ik,jk)\%k==0]} g(k,n,m)=ik=1njk=1mikjk×[gcd(ik,jk)%k==0]
そ し て 然 后 g ( k , n , m ) = k 2 × ∑ i = 1 n / k ∑ j = 1 m / k i j × [ gcd ⁡ ( i , j ) % 1 = = 0 ] \frac{そして}{然后}g(k,n,m)=k^2\times\sum_{i=1}^{n/k}\sum_{j=1}^{m/k}{ij\times[\gcd(i,j)\%1==0]} g(k,n,m)=k2×i=1n/kj=1m/kij×[gcd(i,j)%1==0]
だ つ て 因 为 [ gcd ⁡ ( i , j ) % 1 = = 0 ] 永 真 \frac{だつて}{因为}[\gcd(i,j)\%1==0]永真 [gcd(i,j)%1==0]
だ か ら 所 以 g ( k , n , m ) = k 2 × ∑ i = 1 n / k ∑ j = 1 m / k i j \frac{だから}{所以}g(k,n,m)=k^2\times\sum_{i=1}^{n/k}\sum_{j=1}^{m/k}ij g(k,n,m)=k2×i=1n/kj=1m/kij

设 S ( x ) = 1 + 2 + . . . + x 设S(x)=1+2+...+x S(x)=1+2+...+x
そ れ で は 那 么 S ( x ) = x 2 + x 2 , O ( 1 ) 算 出 \frac{それでは}{那么}S(x)=\frac{x^2+x}{2},O(1)算出 S(x)=2x2+x,O(1)
だ か ら 所 以 g ( k , n , m ) = k 2 × S ( ⌊ n k ⌋ ) S ( ⌊ m k ⌋ ) \frac{だから}{所以}g(k,n,m)=k^2\times S(\lfloor\frac{n}{k}\rfloor)S(\lfloor\frac{m}{k}\rfloor) g(k,n,m)=k2×S(kn)S(km)
倍 数 反 演 成 功 , f ( k , n , m ) = ∑ d = 1 ∞ μ ( d ) × g ( d k ) 倍数反演成功,f(k,n,m)=\sum_{d=1}^\infty\mu(d)\times g(dk) ,f(k,n,m)=d=1μ(d)×g(dk)
f ( k , n , m ) = ∑ d = 1 ∞ μ ( d ) × ( d k ) 2 × S ( ⌊ n d k ⌋ ) S ( ⌊ m d k ⌋ ) f(k,n,m)=\sum_{d=1}^\infty\mu(d)\times (dk)^2\times S(\lfloor\frac{n}{dk}\rfloor)S(\lfloor\frac{m}{dk}\rfloor) f(k,n,m)=d=1μ(d)×(dk)2×S(dkn)S(dkm)
f ( k , n , m ) = k 2 ∑ d = 1 ∞ μ ( d ) × d 2 × S ( ⌊ n d k ⌋ ) S ( ⌊ m d k ⌋ ) f(k,n,m)=k^2\sum_{d=1}^\infty\mu(d)\times d^2\times S(\lfloor\frac{n}{dk}\rfloor)S(\lfloor\frac{m}{dk}\rfloor) f(k,n,m)=k2d=1μ(d)×d2×S(dkn)S(dkm)
だ つ て 因 为 ⌊ n d k ⌋ ≥ 1 , だ か ら 所 以 d ≤ ⌊ n k ⌋ \frac{だつて}{因为}\lfloor\frac{n}{dk}\rfloor\geq 1,\frac{だから}{所以}d\leq \lfloor\frac{n}{k}\rfloor dkn1,dkn
f ( k , n , m ) = k 2 ∑ d = 1 n / k μ ( d ) × d 2 × S ( ⌊ n d k ⌋ ) S ( ⌊ m d k ⌋ ) f(k,n,m)=k^2\sum_{d=1}^{n/k}\mu(d)\times d^2\times S(\lfloor\frac{n}{dk}\rfloor)S(\lfloor\frac{m}{dk}\rfloor) f(k,n,m)=k2d=1n/kμ(d)×d2×S(dkn)S(dkm)
上 式 O ( n ) 可 算 , 需 要 预 处 理 μ ( d ) × d 2 的 前 缀 和 , 可 以 线 性 求 出 来 O ( n ) 上式O(\sqrt{n})可算,需要预处理\mu(d)\times d^2的前缀和,可以线性求出来O(n) O(n ),μ(d)×d2,线O(n)
a n s = ∑ d = 1 n d × f ( 1 , ⌊ n d ⌋ , ⌊ m d ⌋ ) ans=\sum_{d=1}^nd\times f(1,\lfloor\frac{n}{d}\rfloor,\lfloor\frac{m}{d}\rfloor) ans=d=1nd×f(1,dn,dm)
上 式 O ( n × n ) 可 算 , だ か ら 所 以 ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) 需 要 O ( n ) 的 时 间 上式O(\sqrt{n}\times\sqrt{n})可算,\frac{だから}{所以}\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)需要O(n)的时间 O(n ×n ),i=1nj=1mlcm(i,j)O(n)

莫比乌斯反演: ∑ i = 1 n ∑ j = 1 m d ( i j ) \sum_{i=1}^n\sum_{j=1}^md(ij) i=1nj=1md(ij)

bzoj3994 ∑ i = 1 n ∑ j = 1 m d ( i j )   ( T ∈ [ 1 , 50 &ThinSpace; 000 ] { n , m ∈ [ 1 , 50 &ThinSpace; 000 ] } ) \sum_{i=1}^n\sum_{j=1}^md(ij) (T\in[1,50\,000]\{n,m\in[1,50\,000]\}) i=1nj=1md(ij)(T[1,50000]{n,m[1,50000]})AC代码

a n s = ∑ i = 1 n ∑ j = 1 m d ( i j ) ans=\sum_{i=1}^n\sum_{j=1}^m{d(ij)} ans=i=1nj=1md(ij)
a n s = ∑ i = 1 n ∑ j = 1 m ∑ x ∣ i ∑ y ∣ j [ gcd ⁡ ( x , y ) = = 1 ] ans=\sum_{i=1}^n\sum_{j=1}^m\sum_{x|i}\sum_{y|j}{[\gcd(x,y)==1]} ans=i=1nj=1mxiyj[gcd(x,y)==1]

稍 微 枚 举 几 项 即 可 知 : ∑ i = 1 n ∑ x ∣ i a n y = ∑ x = 1 n ⌊ n x ⌋ a n y 稍微枚举几项即可知:\sum_{i=1}^n\sum_{x|i}{any}=\sum_{x=1}^n{\lfloor\frac{n}{x}\rfloor any} :i=1nxiany=x=1nxnany
a n s = ∑ x = 1 n ∑ y = 1 m ⌊ n x ⌋ ⌊ m y ⌋ [ gcd ⁡ ( x , y ) = = 1 ] ans=\sum_{x=1}^n\sum_{y=1}^m\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor[\gcd(x,y)==1] ans=x=1ny=1mxnym[gcd(x,y)==1]
设 f ( k , n , m ) = ∑ x = 1 n ∑ y = 1 m ⌊ n x ⌋ ⌊ m y ⌋ [ gcd ⁡ ( x , y ) = = k ] 设f(k,n,m)=\sum_{x=1}^n\sum_{y=1}^m\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor[\gcd(x,y)==k] f(k,n,m)=x=1ny=1mxnym[gcd(x,y)==k]
倍 数 反 演 し た い 试 图 倍 数 反 演 \frac{倍数反演したい}{试图倍数反演}
设 g ( k , n , m ) = ∑ i = 1 ∞ f ( i k , n , m ) 设g(k,n,m)=\sum_{i=1}^\infty f(ik,n,m) g(k,n,m)=i=1f(ik,n,m)
そ れ で は 那 么 g ( k , n , m ) = ∑ x = 1 n ∑ y = 1 m ⌊ n x ⌋ ⌊ m y ⌋ [ gcd ⁡ ( x , y ) % k = = 0 ] \frac{それでは}{那么}g(k,n,m)=\sum_{x=1}^n\sum_{y=1}^m\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor[\gcd(x,y)\%k==0] g(k,n,m)=x=1ny=1mxnym[gcd(x,y)%k==0]
/ / 做 代 换 x = x k , y = y k //做代换x=xk,y=yk //x=xk,y=yk
g ( k , n , m ) = ∑ x k = 1 n ∑ y k = 1 m ⌊ n x k ⌋ ⌊ m y k ⌋ [ gcd ⁡ ( x k , y k ) % k = = 0 ] g(k,n,m)=\sum_{xk=1}^n\sum_{yk=1}^m\lfloor\frac{n}{xk}\rfloor\lfloor\frac{m}{yk}\rfloor[\gcd(xk,yk)\%k==0] g(k,n,m)=xk=1nyk=1mxknykm[gcd(xk,yk)%k==0]
g ( k , n , m ) = ∑ x = 1 n / k ∑ y = 1 m / k ⌊ n x k ⌋ ⌊ m y k ⌋ g(k,n,m)=\sum_{x=1}^{n/k}\sum_{y=1}^{m/k}\lfloor\frac{n}{xk}\rfloor\lfloor\frac{m}{yk}\rfloor g(k,n,m)=x=1n/ky=1m/kxknykm

设 S ( n ) = ∑ i = 1 n ⌊ n i ⌋ 设S(n)=\sum_{i=1}^n{\lfloor\frac{n}{i}\rfloor} S(n)=i=1nin
S ( n ) 等 价 于 ∑ i = 1 n d ( i )   / / d ( i ) : i 的 因 数 个 数 S(n)等价于\sum_{i=1}^n{d(i)} //d(i):i的因数个数 S(n)i=1nd(i)//d(i):i
d ( i ) 是 一 个 积 性 函 数 , 所 以 可 以 用 线 性 筛 出 来 d(i)是一个积性函数,所以可以用线性筛出来 d(i),线
需 要 一 个 辅 助 数 组 a ( i ) = i 的 最 小 因 子 的 次 幂 需要一个辅助数组a(i)= i的最小因子的次幂 a(i)=i
S ( 1 ) = 1 , a ( 1 ) = 0 , S ( p ) = 2 , a ( p ) = 1 , S ( p k ) = S ( p k − 1 ) 1 + a ( p k − 1 ) × ( 2 + a ( p k − 1 ) ) , a ( p k ) = a ( p k − 1 ) + 1 S(1)=1,a(1)=0,S(p)=2,a(p)=1,S(p^k)=\frac{S(p^{k-1})}{1+a(p^{k-1})}\times(2+a(p^{k-1})),a(p^k)=a(p^{k-1})+1 S(1)=1,a(1)=0,S(p)=2,a(p)=1,S(pk)=1+a(pk1)S(pk1)×(2+a(pk1)),a(pk)=a(pk1)+1
g ( k , n , m ) = S ( ⌊ n k ⌋ ) × S ( ⌊ m k ⌋ ) g(k,n,m)=S(\lfloor\frac{n}{k}\rfloor)\times S(\lfloor\frac{m}{k}\rfloor) g(k,n,m)=S(kn)×S(km)
倍 数 反 演 成 功 , f ( k , n , m ) = ∑ i = 1 ∞ g ( i k , n , m ) × μ ( i ) 倍数反演成功,f(k,n,m)=\sum_{i=1}^\infty{g(ik,n,m)\times\mu(i)} ,f(k,n,m)=i=1g(ik,n,m)×μ(i)
f ( k , n , m ) ∑ i = 1 ∞ μ ( i ) × S ( ⌊ n i k ⌋ ) × S ( ⌊ m i k ⌋ ) f(k,n,m)\sum_{i=1}^\infty\mu(i)\times S(\lfloor\frac{n}{ik}\rfloor)\times S(\lfloor\frac{m}{ik}\rfloor) f(k,n,m)i=1μ(i)×S(ikn)×S(ikm)
だ つ て 因 为 ⌊ n i k ⌋ ≥ 1 , だ か ら 所 以 i ≤ ⌊ n k ⌋ \frac{だつて}{因为}\lfloor\frac{n}{ik}\rfloor\geq 1,\frac{だから}{所以}i\leq \lfloor\frac{n}{k}\rfloor ikn1,ikn
f ( k , n , m ) ∑ i = 1 n / k μ ( i ) × S ( ⌊ n i k ⌋ ) × S ( ⌊ m i k ⌋ ) f(k,n,m)\sum_{i=1}^{n/k}\mu(i)\times S(\lfloor\frac{n}{ik}\rfloor)\times S(\lfloor\frac{m}{ik}\rfloor) f(k,n,m)i=1n/kμ(i)×S(ikn)×S(ikm)
上 式 可 O ( n ) 计 算 , け れ ど 但 是 需 要 预 处 理 出 μ ( i ) 的 前 缀 和 以 及 S ( n ) 的 每 一 项 , 需 要 O ( n ) 的 时 间 上式可O(\sqrt{n})计算,\frac{けれど}{但是}需要预处理出\mu(i)的前缀和以及S(n)的每一项,需要O(n)的时间 O(n ),μ(i)S(n),O(n)

莫比乌斯反演: ∑ i = 1 n [ i 不 含 有 平 方 因 子 ] \sum_{i=1}^n[i不含有平方因子] i=1n[i]

bzoj2440 求 第 k 个 不 含 平 方 因 子 的 数 ( 1 不 算 )   ( T ∈ [ 1 , 50 ] { k ∈ [ 1 , 1 e 9 ] } ) 求第k个不含平方因子的数(1不算) (T\in[1,50]\{k\in[1,1e9]\}) k(1)(T[1,50]{k[1,1e9]})AC代码

直 接 容 斥 , f ( n ) = ∑ i = 1 n [ i 不 含 有 平 方 因 子 ] = ∑ i = 1 n μ ( i ) × n i 2 直接容斥,f(n)=\sum_{i=1}^n[i不含有平方因子]=\sum_{i=1}^{\sqrt{n}}{\mu(i)\times\frac{n}{i^2}} ,f(n)=i=1n[i]=i=1n μ(i)×i2n
上 式 O ( n ) 可 算 , 对 于 b z o j 2440 来 说 可 以 二 分 找 到 答 案 上式O(\sqrt{n})可算,对于bzoj2440来说可以二分找到答案 O(n ),bzoj2440

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值