反演区

莫比乌斯反演

这就是个毒瘤...

则有

这个不常用...

下面这个用的多一点。

则有

设 nt = d 则有

此处N为枚举上界。

莫比乌斯函数的来源:

由F(x)倒推出f(x)的时候F(x)前面的系数为miu(x)

求和交换的一些技巧:

 

打表n = 60即可(伪)证明。

没了。这TM比《组合数学》上面讲的简单多了...

 1 inline void getmiu(int b) {
 2     miu[1] = 1;
 3     for(int i = 2; i <= b; i++) {
 4         if(!vis[i]) {
 5             p[++top] = i;
 6             miu[i] = -1;
 7         }
 8         for(int j = 1; j <= top && i * p[j] <= b; j++) {
 9             vis[i * p[j]] = 1;
10             if(i % p[j] == 0) {
11                 break;
12             }
13             miu[i * p[j]] = -miu[i];
14         }
15     }
16     return;
17 }
线性筛miu

杜教筛我显然不会...

遇到超过1e8的miu,可以尝试O(sqrt(x))来求。

下面通过例题来加深理解。

[NOI2010]能量采集  [SDOI2008]仪仗队

第一题

整除分块 [HAOI2011]Problem b   [CQOI2007]余数求和

 

posted @ 2018-08-01 17:10  garage  阅读(131)  评论(0编辑  收藏  举报