SDOI2015 約數個數和

2022-03-27 07:33:05 字數 1946 閱讀 7931

慢慢化柿子吧

要求的是這個

\[\sum_^n\sum_^md(ij)

\]神奇的約數個數函式有乙個這樣的性質

\[d(ij)=\sum_\sum_[(x,y)=1]

\]試著從唯一分解定理的角度去理解,將\(i,j\)分別分解質因數

顯然\(d(ij)\)應該等於每乙個\(p\)在\(i,j\)中分解出來的指數加起來加1再相乘

所以分別列舉所有約數的話,保證這對約數互質就可以求出所有約數了

之後現在的答案變成了

\[\sum_^n\sum_^m\sum_\sum_[(x,y)=1]

\]一看就很煩人啊,把\(x,y\)放到前面來列舉

\[\sum_^n\sum_^m[(x,y)=1]\sum_\sum_1

\]顯然後面那個東西就是

\[\left \lfloor \frac \right \rfloor\times \left \lfloor \frac \right \rfloor

\]於是答案變成了

\[\sum_^n\sum_^m[(x,y)=1]\left \lfloor \frac \right \rfloor\times \left \lfloor \frac \right \rfloor

\]開始套路了

\[f(n)=\sum_^n\sum_^m[(i,j)=n]\left \lfloor \frac \right \rfloor\times \left \lfloor \frac \right \rfloor

\]\[f(n)=\sum_^n\sum_^m[n|(i,j)]\left \lfloor \frac \right \rfloor\times \left \lfloor \frac \right \rfloor

\]\[=\sum_^ \right \rfloor}\sum_^ \right \rfloor} \left \lfloor \frac \right \rfloor \left \lfloor \frac \right \rfloor

\]顯然就有

\[f(n)=\sum_f(d)

\]\[f(n)=\sum_\mu(\frac)f(d)

\]因為我們要求的只有\(f(1)\)

所以\[ans=\sum_^n\mu(d)\sum_^ \right \rfloor}\sum_^ \right \rfloor}\left \lfloor \frac \right \rfloor \left \lfloor \frac \right \rfloor

\]我們發現如果\(\frac\)和\(\frac\)固定了,後面這個柿子就非常好求了

就是\(\frac\)和\(\frac\)的約數個數字首和

於是我們可以線篩約數個數函式和\(\mu\)之後就可以了

**

#include#include#include#define ll long long

#define min(a,b) ((a)<(b)?(a):(b))

#define max(a,b) ((a)>(b)?(a):(b))

#define re register

#define maxn 50005

inline int read()

int p[maxn>>1],f[maxn],pre[maxn],mu[maxn],d[maxn],t[maxn];

int t,n,m;

int main()

d[p[j]*i]=d[p[j]]*d[i];

mu[p[j]*i]=-1*mu[i];

t[p[j]*i]=1;

} }for(re int i=1;i<=50000;i++) pre[i]=pre[i-1]+mu[i],d[i]+=d[i-1];

t=read();

while(t--)

printf("%lld\n",ans);

} return 0;

}

SDOI2015 約數個數和

description input 輸入檔案包含多組測試資料。第一行,乙個整數t,表示測試資料的組數。接下來的t行,每行兩個整數n m。output t行,每行乙個整數,表示你所求的答案。sample input 2 7 45 6 sample output 110 121data constrai...

SDOI2015 約數個數和

portal 考慮這樣乙個式子 d ij sum sum x bot y 怎麼證明?一開始我們一定會想到 d ij sum sum 1 但這樣會計算重複.於是我們考慮 d ij sum sum j 1 這樣每個因數就變成 frac 如果x和y不互質.那麼就會有 frac frac 如果xp,yp同時...

題解 SDOI2015 約數個數和

link 又到了喜聞樂見的推式子環節 引理 d i,j sum sum gcd u,v 1 證明 等會補。sum n sum m sum sum gcd u,v 1 sum n sum m lfloor frac n u rfloor lfloor frac m v rfloor gcd u,v 1...