学习笔记::莫比乌斯反演

一点都没有听懂。。。。。。。

做了一道题 bzoj1101 看了大量题解后懂了一个东西

以后再更。。。

求莫比乌斯函数

    mu[1]=1; int tot=0;
    for(int i=2;i<=50000;i++)
    {
        if(!mark[i])
        {
            mu[i]=-1;
            pri[++tot]=i;
        }
        for(int j=1;j<=tot&&pri[j]*i<=50000;j++)
        {
            mark[i*pri[j]]=1;
            if(i%pri[j]==0)
            {
                mu[i*pri[j]]=0;
                break;
            }
            mu[i*pri[j]]=-mu[i];
        }
    }
View Code

 

posted @ 2017-01-20 18:25  19992147  阅读(119)  评论(0编辑  收藏  举报