莫比乌斯反演
感觉这个专题的题都不是太难(最后一个除外)
主要是学会一个套路就能乱杀。
咕了一道一个人的数论,貌似需要很多技巧//
感觉这个讲的不错 link
就是把题意写成数学柿子,通过一番操作弄出来一个[...=1]的布尔表达式。
然后再用莫比乌斯反演展开他就好了。
很常用的套路就是看到需要两次分块的时候就令一个T=a*b,然后枚举T。
其实这些都是更换枚举顺序啥的小套路,随便瞎化简数学柿子就行了。
一般来说如果可以调和级数的复杂度枚举,那么就枚举。
记录一下常用的二维整除分块模板
for( R l = 1 , r = 0 ; l <= min( n , m ) ; l = r + 1 ){
r = min( n / ( n / l ) , m / ( m / l ) ) ;
balabala // here is your operate to sum the ans
}
如果不行就线性筛,这也是主要难点(DZY那个推了一个世纪),所以要去更一更之前没写完的线性筛扩展
link 这貌似是个很骚的套路,利用 \(id=I*\varphi\) 可以展开任意一个数字,如果展开gcd的话还能获得\(\sum\) 变常数的特效。
可能就没了,因为重点就在线性筛,推柿子都是套路。
$The \ light \ has \ betrayed \ me$

浙公网安备 33010602011771号