2021年GDCPC广东省大学生程序设计竞赛(热身赛) A.Calculation(贝尔级数)

2021年GDCPC广东省大学生程序设计竞赛(热身赛) A.Calculation(贝尔级数)

传送门:https://ac.nowcoder.com/acm/contest/17796/A?&headNav=acm
题目大意:给定 n n n,求 ∑ i = 1 n ∑ j = 1 n ∑ k = 1 n λ ( i ) λ ( j ) [ i ∣ j   a n d   j ∣ k ] \sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{k=1}^n\lambda(i)\lambda(j)[i\mid j\space and\space j\mid k] i=1nj=1nk=1nλ(i)λ(j)[ij and jk] λ ( n ) \lambda(n) λ(n)为刘维尔函数, λ ( n ) = ( − 1 ) c \lambda(n)=(-1)^c λ(n)=(1)c c c c n n n中所包含的质因数个数且重复计数。
题解:首先考虑改变枚举顺序消去 [ i ∣ j   a n d   j ∣ k ] [i\mid j\space and\space j\mid k] [ij and jk]
⇒ ∑ i = 1 n ∑ j = 1 n ∑ k = 1 ⌊ n j ⌋ λ ( i ) λ ( j ) [ i ∣ j ] = ∑ i = 1 n ∑ j = 1 ⌊ n i ⌋ ∑ k = 1 ⌊ n i j ⌋ λ ( i ) λ ( i j ) = ∑ i = 1 n ∑ j = 1 ⌊ n i ⌋ ⌊ n i j ⌋ λ ( i ) λ ( i j ) \begin{aligned} &\Rightarrow\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{k=1}^{\lfloor\frac{n}{j}\rfloor}\lambda(i)\lambda(j)[i\mid j] \\&=\sum\limits_{i=1}^n\sum\limits_{j=1}^{\lfloor\frac{n}{i}\rfloor}\sum\limits_{k=1}^{\lfloor\frac{n}{ij}\rfloor}\lambda(i)\lambda(ij) \\&=\sum\limits_{i=1}^n\sum\limits_{j=1}^{\lfloor\frac{n}{i}\rfloor}\lfloor\frac{n}{ij}\rfloor\lambda(i)\lambda(ij) \end{aligned} i=1nj=1nk=1jnλ(i)λ(j)[ij]=i=1nj=1ink=1ijnλ(i)λ(ij)=i=1nj=1inijnλ(i)λ(ij)
考虑刘维尔函数的定义,显然这个函数为完全积性函数且对于一个平方数 x 2 x^2 x2,一定有 λ ( x 2 ) = 1 \lambda(x^2)=1 λ(x2)=1,那么:
⇒ ∑ i = 1 n ∑ j = 1 ⌊ n i ⌋ ⌊ n i j ⌋ λ ( i 2 j ) = ∑ i = 1 n ∑ j = 1 ⌊ n i ⌋ ⌊ n i j ⌋ λ ( j ) = ∑ T = 1 n ⌊ n T ⌋ ∑ d ∣ T λ ( d ) \begin{aligned} &\Rightarrow\sum\limits_{i=1}^n\sum\limits_{j=1}^{\lfloor\frac{n}{i}\rfloor}\lfloor\frac{n}{ij}\rfloor\lambda(i^2j) \\&=\sum\limits_{i=1}^n\sum\limits_{j=1}^{\lfloor\frac{n}{i}\rfloor}\lfloor\frac{n}{ij}\rfloor\lambda(j) \\&=\sum\limits_{T=1}^n\lfloor\frac{n}{T}\rfloor\sum\limits_{d\mid T}\lambda(d) \end{aligned} i=1nj=1inijnλ(i2j)=i=1nj=1inijnλ(j)=T=1nTndTλ(d)
第三步是枚举 T = i j T=ij T=ij时得出来的转变。
现在只需要求解后一部分的 ∑ d ∣ T λ ( d ) \sum\limits_{d\mid T}\lambda(d) dTλ(d)
考虑 λ ( n ) \lambda(n) λ(n)的贝尔级数,不懂贝尔级数的读者可以到这篇文章进行学习。
λ p ( x ) = 1 − x + x 2 − x 3 + ⋯ x λ p ( x ) = x − x 2 + x 3 − x 4 + ⋯ ( 1 + x ) λ p ( x ) = 1 λ p ( x ) = 1 1 + x \lambda_p(x)=1-x+x^2-x^3+\cdots \\x\lambda_p(x)=x-x^2+x^3-x^4+\cdots \\(1+x)\lambda_p(x)=1 \\\lambda_p(x)=\frac{1}{1+x} λp(x)=1x+x2x3+xλp(x)=xx2+x3x4+(1+x)λp(x)=1λp(x)=1+x1
这里的 ∑ d ∣ T λ ( d ) \sum\limits_{d\mid T}\lambda(d) dTλ(d)相当于:
( λ ∗ 1 ) ( x ) ⇒ λ p ( x ) 1 p ( x ) = 1 1 + x × 1 1 − x = 1 1 − x 2 (\lambda*1)(x)\Rightarrow\lambda_p(x)1_p(x)=\frac{1}{1+x}\times\frac{1}{1-x}=\frac{1}{1-x^2} (λ1)(x)λp(x)1p(x)=1+x1×1x1=1x21
逆推一下这个式子可以得到:
f p ( x ) = 1 1 − x 2 f p ( x ) = 1 + x 2 f p ( x ) f p ( x ) = 1 + 0 + x 2 + 0 + x 4 + ⋯ \\f_p(x)=\frac{1}{1-x^2} \\f_p(x)=1+x^2f_p(x) \\f_p(x)=1+0+x^2+0+x^4+\cdots fp(x)=1x21fp(x)=1+x2fp(x)fp(x)=1+0+x2+0+x4+
所以函数 f ( x ) f(x) f(x)的意义是什么?由于两个积性函数的狄利克雷卷积仍是积性函数,那么当且仅当一个数的所有质因数的幂次可以被 2 2 2整除时, f ( x ) = 1 f(x)=1 f(x)=1,否则 f ( x ) = 0 f(x)=0 f(x)=0。说明 f ( x ) = [ x   i s   a   s q u a r e   n u m b e r ] f(x)=[x\space is \space a\space square\space number] f(x)=[x is a square number]
此时原式等于:
⇒ ∑ T = 1 n ⌊ n T ⌋ f ( T ) = ∑ T = 1 n ⌊ n T ⌋ [ T   i s   a   s q u a r e   n u m b e r ] = ∑ T = 1 n ⌊ n T 2 ⌋ \begin{aligned} &\Rightarrow\sum\limits_{T=1}^n\lfloor\frac{n}{T}\rfloor f(T) \\&=\sum\limits_{T=1}^n\lfloor\frac{n}{T}\rfloor [T\space is \space a\space square\space number] \\&=\sum\limits_{T=1}^n\lfloor\frac{n}{T^2}\rfloor \end{aligned} T=1nTnf(T)=T=1nTn[T is a square number]=T=1nT2n
时间复杂度 O ( n ) O(\sqrt n) O(n )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值