慢慢化柿子吧
要求的是這個
\[\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...