Loading

莫比乌斯反演

感觉这个专题的题都不是太难(最后一个除外)

主要是学会一个套路就能乱杀。

咕了一道一个人的数论,貌似需要很多技巧//

感觉这个讲的不错 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\) 变常数的特效。

可能就没了,因为重点就在线性筛,推柿子都是套路。

posted @ 2021-08-22 11:25  Soresen  阅读(63)  评论(2)    收藏  举报