1. 程式人生 > >莫比烏斯係數的篩法

莫比烏斯係數的篩法

利用線性篩完成的莫比烏斯係數(函式)的推導
注意mu[1]=1;

void init(){
    mu[1]=1;
    FOR(i,2,M-1){
        if(!mark[i])prime[++cnt]=i,mu[i]=-1;
        for(int j=1;j<=cnt;j++){
            int t=i*prime[j];
            if(t>=M)break;
            mark[t]=1;
            if(i%prime[j]==0){mu[t]=0;break;}
            else
mu[t]=-mu[i]; } } }

相關推薦

係數

利用線性篩完成的莫比烏斯係數(函式)的推導 注意mu[1]=1; void init(){ mu[1]=1; FOR(i,2,M-1){ if(!mark[i])pr

線性(模板)

//線性篩法求莫比烏斯函式 bool check[MAXN+10]; long long prime[MAXN+10]; int mu[MAXN+10]; void Moblus() { memset(check,false,sizeof(check)); mu[1] = 1;

數論線性總結 (素數,尤拉函式函式,前n個數的約數個數)

線性篩 線性篩在數論中起著至關重要的作用,可以大大降低求解一些問題的時間複雜度,使用線性篩有個前提(除了素數篩)所求函式必須是數論上定義的積性函式,即對於正整數n的一個算術函式 f(n),若f(1)=1,且當a,b互質時f(ab)=f(a)f(b),在數論上就稱它為積性

HDU 6053 TrickGCD 函數/容斥/

mem define brush double 容斥 sum main cas sca 題意:給出n個數$a[i]$,每個數可以變成不大於它的數,現問所有數的gcd大於1的方案數。其中$(n,a[i]<=1e5)$ 思路:鑒於a[i]不大,可以想到枚舉gcd的值。考

hdu 5212 Code 或者

ott eat for php -- ++ inpu for each first Code Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Prob

51nod1240 函式(普通)

基準時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎題  收藏  關注 莫比烏斯函式,由德國數學家和天文學家莫比烏斯提出。梅滕斯(Mertens)首先

HDU 6053 TrickGCD 反演||

題意:給定一個序列Ai,構造一個序列Bi,滿足Bi<=Ai並且gcd(Bi)>=2.  問有多少種Bi序列 正解:比賽的時候有點容斥的思路,但是感覺容斥太麻煩了,就換了題去搞,完全忘了莫比烏斯反演。。 顯然我們要列舉gcd,然後對於每個gcd求所有(Ai/g

hdu 6053 TrickGCD +函式+分塊處理

題目連結 題意: 給你n個數字,每個位置的數字可以小於等於a[i],求所有gcd(l,r)都滿足大於等於2的情況數; 思路: 首先,比較好想到的就是列舉gcd,那麼每個ai,都有ai/gcd

【bzoj4176】Lucas的數論 反演+杜教

wid eight 前綴 .html != brush name load ans 題目描述 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1<=i<

線性函數

getch fine 莫比烏斯 clu ace etc fin else str 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #includ

【bzoj3309】DZY Loves Math 反演+線性

例如 一行 根據 優化 long long ast 以及 -1 變化 題目描述 對於正整數x,定義f(x)為x所含質因子的最大冪指數。例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0。給定正整數n,m,求$\sum\li

【bzoj 4176】 Lucas的數論 反演(杜教

amp short last ++ esc output sig blog tro Description 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1&l

狄利克雷卷積&&杜教&&反演

pos cnblogs title tar sdn aid www. article 前綴 狄利克雷卷積和莫比烏斯反演:鏈接 淺談一類積性函數的前綴和: 鏈接 賈誌鵬線性篩: 鏈接   讀賈誌鵬線性篩有感 (莫比烏斯函數的應用)   莫比烏斯函數 狄利

bzoj 4176: Lucas的數論 -- 杜教反演

i++ define hint .net width long .com cas string 4176: Lucas的數論 Time Limit: 30 Sec Memory Limit: 256 MB Description 去年的Lucas非常喜歡數論

bzoj 4916: 神犇和蒟蒻【歐拉函數+函數+杜教

pac pan using 函數 莫比烏斯函數 right for body ace 居然扒到了學長出的題 和3944差不多(?),雖然一眼看上去很可怕但是仔細觀察發現,對於mu來講,答案永遠是1(對於帶平方的,mu值為0,1除外),然後根據歐拉篩的原理,\( \sum_{

bzoj 4176: Lucas的數論【反演+杜教

+= span ios bool names div display pac stream 首先由這樣一個結論: \[ d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1] \] 然後推反演公式: \[ \sum_{i=1}^{n}\sum_{j=

線性反演

然而 效率 復雜度 是把 套路 組合數 處理 for 答案 線性篩與莫比烏斯反演 和上篇文章一樣,一直沒有研究這個東西,結果又考了GG……TAT 下定決心學一學,搞好這個東西。 線性篩 篩質數有很多方法,好像很厲害的有洲閣篩、杜教篩(然而我都不會QAQ),比較坑的有暴

【XSY2731】Div 數論 杜教 反演

esp mar 復雜度 時間 莫比烏斯反演 freopen str namespace int 題目大意   定義復數\(a+bi\)為整數\(k\)的約數,當且僅當\(a\)和\(b\)為整數且存在整數\(c\)和\(d\)滿足\((a+bi)(c+di)=k\)。   

51nod 1244 函數之和(杜教)

輸出 blog mes return ont img str tmp AR 基準時間限制:3 秒 空間限制:131072 KB 分值: 320 難度:7級算法題 收藏 關註 莫比烏斯函數,由德國數學家和天文學家莫比烏斯提出。梅滕斯(

關於歐拉函數與函數等一系列積性函數的線性

出發點 get 我們 什麽 提升 討論 一點 每一個 ++i 為什麽要學習不同的篩法? 原因很簡單,因為通常當我們需要運用歐拉函數等一系列函數的時候,我們會采取提前預處理的方法來提高我們的效率。既然要提升效率,那麽我們就需要盡量用優秀一下的方法來完成我們的要求。 線性篩的出