微信小程序基于 Canvas 实现直播点赞气泡效果小组件详解
596
2022-08-28
BJ 集训测试6 求和
n<=1e9 给定一个模数
现场有13人AC..我..好菜啊
对原式化简
∑d=1nd∑i=1n∑j=1i∑k=1i[gcd(i,j,k)==d]
∑ d = 1 n d ∑ i = 1 n ∑ j = 1 i ∑ k = 1 i [ g c d ( i , j , k ) == d ]
∑d=1nd∑i=1⌊nd⌋∑j=1i∑k=1i[gcd(i,j,k)==1]
∑ d = 1 n d ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 i ∑ k = 1 i [ g c d ( i , j , k ) == 1 ]
∑d=1nd∑i=1⌊nd⌋∑j=1i∑k=1iε(gcd(i,j,k))
∑ d = 1 n d ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 i ∑ k = 1 i ε ( g c d ( i , j , k ) )
∑d=1nd∑i=1⌊nd⌋∑j=1i∑k=1i∑d′|gcd(i,j,k)μ(d′)
∑ d = 1 n d ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 i ∑ k = 1 i ∑ d ′ | g c d ( i , j , k ) μ ( d ′ )
∑d=1nd∑d′=1⌊nd⌋μ(d′)∑i=1⌊ndd′⌋∑j=1i∑k=1i1
∑ d = 1 n d ∑ d ′ = 1 ⌊ n d ⌋ μ ( d ′ ) ∑ i = 1 ⌊ n d d ′ ⌋ ∑ j = 1 i ∑ k = 1 i 1
设D为d∗d′
d ∗ d ′ 观察到后面为∑i=1⌊ndd′⌋i2 ∑ i = 1 ⌊ n d d ′ ⌋ i 2
将前半部分替换卷积 后半部分替换公式
∑D=1n∑d′|DDd′μ(d′)⌊ndd′⌋∗(⌊ndd′⌋+1)∗(2∗⌊ndd′⌋)6
∑ D = 1 n ∑ d ′ | D D d ′ μ ( d ′ ) ⌊ n d d ′ ⌋ ∗ ( ⌊ n d d ′ ⌋ + 1 ) ∗ ( 2 ∗ ⌊ n d d ′ ⌋ ) 6
∑D=1nφ(D)⌊ndd′⌋∗(⌊ndd′⌋+1)∗(2∗⌊ndd′⌋)6
∑ D = 1 n φ ( D ) ⌊ n d d ′ ⌋ ∗ ( ⌊ n d d ′ ⌋ + 1 ) ∗ ( 2 ∗ ⌊ n d d ′ ⌋ ) 6
因为后半部分可以考虑到分块计算所以只需要前半部分前缀和即可 那么杜教筛 预处理欧拉函数的前 2/3使得复杂度降为n23
n 2 3
顺带学习了发杜教筛 下面乘号部分代表卷积符号
考虑两个积性函数的卷积(f∗g)(n)=h
( f ∗ g ) ( n ) = h 如何求积性函数前缀和
考虑φ∗1=id
φ ∗ 1 = i d
顾前缀和可以表示为∑i=1ni=∑i=1n∑d|i1(d)∗φ(nd)
∑ i = 1 n i = ∑ i = 1 n ∑ d | i 1 ( d ) ∗ φ ( n d ) 常见套路
∑i=1ni=∑d=1n∑i=1⌊nd⌋φ(i)
∑ i = 1 n i = ∑ d = 1 n ∑ i = 1 ⌊ n d ⌋ φ ( i )
设H[i]
H [ i ] 表示φ φ 的前缀和
那么显然n∗(n+1)2=∑d=1nH(nd)
n ∗ ( n + 1 ) 2 = ∑ d = 1 n H ( n d )
n∗(n+1)2−∑d=2nH(nd)=H(n)
n ∗ ( n + 1 ) 2 − ∑ d = 2 n H ( n d ) = H ( n ) 好了剩下部分可以递归搞了
#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~