SDOI2015 約數個數和

2021-09-24 16:02:36 字數 900 閱讀 7167

description

input

輸入檔案包含多組測試資料。

第一行,乙個整數t,表示測試資料的組數。

接下來的t行,每行兩個整數n、m。

output

t行,每行乙個整數,表示你所求的答案。

sample input

2

7 45 6

sample output

110

121

data constraint

解法:莫比烏斯反演,話說sd去年好像也出了題反演題

貼大神的blog題解

#include#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;ll num[

50011],mu[50011

],ans;

int pri[50011],np[50011

];bool p[50011

];int

dt,tj,i,j,n,m;

void

prepare()

for(j=1;j<=tot;j++)

np[pri[j]*i]=1

; num[pri[j]*i]=num[i]*2

; mu[pri[j]*i]=-mu[i];}}

for(i=1;i<=lim;i++)

}int

main()

printf(

"%lld\n

",ans);}}

SDOI2015 約數個數和

慢慢化柿子吧 要求的是這個 sum n sum md ij 神奇的約數個數函式有乙個這樣的性質 d ij sum sum x,y 1 試著從唯一分解定理的角度去理解,將 i,j 分別分解質因數 顯然 d ij 應該等於每乙個 p 在 i,j 中分解出來的指數加起來加1再相乘 所以分別列舉所有約數的話...

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...