数论杂题笔记

CF338D GCD Table

先考虑如果会出现,那么会出现在哪一行,因为行数是所有 a a a 的倍数,显然直接 l c m ( a ) lcm(a) lcm(a) 最优。

a[i] 的列数设为 y + i y+i y+i ,那么有 a [ i ] ∣ y + i a[i]|y+i a[i]y+i 那么就有 $n $个同余方程,解出来最小的 y y y 显然最优。最后验算一下就做完了。

51nod 1042

a n s = ∑ i = a b i b / gcd ⁡ ( i , b ) = ∑ i = a b i b ∑ t 1 / t [ gcd ⁡ ( i , b ) = t ] = ∑ i = a b i b ∑ t ∣ i , t ∣ b f ( t ) = b ∑ t ∣ b f ( t ) ∑ t ∣ i i \begin{aligned} ans&=\sum_{i=a}^b ib/\gcd(i,b) \\ &=\sum_{i=a}^b ib \sum_{t}1/t[\gcd(i,b)=t] \\ &=\sum_{i=a}^{b} ib \sum_{t|i,t|b}f(t) \\ &=b\sum_{t|b}f(t)\sum_{t|i} i \end{aligned} ans=i=abib/gcd(i,b)=i=abibt1/t[gcd(i,b)=t]=i=abibti,tbf(t)=btbf(t)tii

∑ t ∣ i i \sum_{t|i} i tii 就很好求,就是 a a a b b b t t t 的倍数的和。

思考我们临时设的函数 f f f ,他要满足 ∑ t ∣ s f ( t ) = 1 / s \sum_{t|s}f(t)=1/s tsf(t)=1/s

这个其实就挺简单了,当然可以直接大力算。

最后枚举 t t t 加答案即可。

51nod 1227

f ( n ) = 1 n ∑ i = 1 n l c m ( i , n ) = ∑ d ∣ n ∑ i i / d [ gcd ⁡ ( i , n ) = d ] = ∑ d ∣ n ∑ i = 1 ⌊ n / d ⌋ i [ gcd ⁡ ( i d , n ) = d ] = ∑ d ∣ n ∑ i = 1 ⌊ n / d ⌋ i [ gcd ⁡ ( i , n / d ) = 1 ] 因 为 有 ∑ i = 1 n i [ gcd ⁡ ( i , n ) = 1 ] = n φ ( n ) + [ n = 1 ] 2 f ( n ) = 1 2 ( 1 + ∑ d ∣ n d φ ( d ) ) \begin{aligned} f(n)&=\frac{1}{n} \sum_{i=1}^nlcm(i,n) \\ &=\sum_{d|n}\sum_ii/d[\gcd(i,n)=d] \\ &=\sum_{d|n}\sum_{i=1}^{\lfloor n/d\rfloor}i[\gcd(id,n)=d] \\ &=\sum_{d|n}\sum_{i=1}^{\lfloor n/d\rfloor}i[\gcd(i,n/d)=1] \\ &因为有\sum_{i=1}^{n}i[\gcd(i,n)=1]=\frac{n\varphi(n)+[n=1]}2 \\ f(n)&=\frac{1}2(1+\sum_{d|n}d\varphi(d)) \end{aligned} f(n)f(n)=n1i=1nlcm(i,n)=dnii/d[gcd(i,n)=d]=dni=1n/di[gcd(id,n)=d]=dni=1n/di[gcd(i,n/d)=1]i=1ni[gcd(i,n)=1]=2nφ(n)+[n=1]=21(1+dndφ(d))

求前缀和的话就是 a n s = ∑ d = 1 n d φ ( d ) ⌊ n / d ⌋ ans=\sum_{d=1}^{n}d\varphi(d)\lfloor n/d\rfloor ans=d=1ndφ(d)n/d。对求 d φ ( d ) d\varphi(d) dφ(d) 前缀和就是杜教筛模板了。

project euler 530

a n s = ∑ i = 1 n ∑ d ∣ i gcd ⁡ ( d , i / d ) = ∑ i = 1 n ∑ d ∣ i ∑ h ∣ d , i / d φ ( h ) = ∑ h φ ( h ) ∑ a , b ≥ 1 [ a b ≤ n / h 2 ] \begin{aligned} ans&=\sum_{i=1}^n \sum_{d|i}\gcd(d,i/d) \\ &=\sum_{i=1}^n \sum_{d|i}\sum_{h|d,i/d} \varphi(h) \\ &=\sum_h\varphi(h)\sum_{a,b\ge 1}[ab\le n/h^2] \end{aligned} ans=i=1ndigcd(d,i/d)=i=1ndihd,i/dφ(h)=hφ(h)a,b1[abn/h2]

暴力枚举 h h h ,对于每个 h h h 右边根号算。然后就做完了,时间复杂度不会算,反正它跑了519366769次,快得一p。

51nod 1847

(对这道题真的很无语

(反正是我蒻就对了2333

给出一个结论:若 i i i , j j j 不互质 ,则 s g c d ( i , j ) = gcd ⁡ ( i , j ) / m i n p ( g c d ( i , j ) ) sgcd(i,j)=\gcd(i,j)/minp(gcd(i,j)) sgcd(i,j)=gcd(i,j)/minp(gcd(i,j))

那么答案就是

∑ i = 2 n ( i m i n p ( i ) ) k ( 2 ∑ i = 1 n / i φ ( i ) − 1 ) \sum_{i=2}^{n}{(\frac{i}{minp(i)})}^k(2\sum_{i=1}^{n/i}\varphi(i)-1) i=2n(minp(i)i)k(2i=1n/iφ(i)1)

后面杜教筛,前面min25筛,结束。

cometoj 1098

”即便它再像一个能筛的函数,也要先推它的定义式“。——未来哲学家yxy

x = ∏ p i e i x =\prod p_i^{e_i} x=piei
f ( x ) = ∏ p i ⌊ e i / 2 ⌋ = x ∏ p i ⌈ e i / 2 ⌉ = ∑ j = 1 x [ ∏ i = 1 k p i ⌈ e i / 2 ⌉ ∣ j ] = ∑ j = 1 x [ x ∣ j 2 ] \begin{aligned} f(x) &=\prod p_i^{\lfloor e^i/2\rfloor} \\ &=\frac{x}{\prod p_i^{\lceil e^i/2\rceil}} \\ &=\sum_{j=1}^{x}[\prod_{i=1}^kp_i^{\lceil e^i/2\rceil}|j] \\ &=\sum_{j=1}^x[x|j^2] \end{aligned} f(x)=piei/2=piei/2x=j=1x[i=1kpiei/2j]=j=1x[xj2]
第二部到第三步用了的除法的定义 a b = ∑ i = 1 a [ b ∣ i ] \frac{a}{b}=\sum_{i=1}^a[b|i] ba=i=1a[bi] ,意思是 a a a 里面有多少个 b b b 的倍数。

最后一步意思是当 a ∣ b a|b ab ,当且仅当 a 2 ∣ b 2 a^2|b^2 a2b2 (就**离谱。

考虑求前缀和,我们知道 f ( x ) f(x) f(x) 是积性函数,且 f ( p ) = 1 , p ∈ P r i m e f(p)=1,p\in Prime f(p)=1,pPrime

powerful number筛,结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值