description
input
輸入檔案包含多組測試資料。
第一行,乙個整數t,表示測試資料的組數。
接下來的t行,每行兩個整數n、m。
output
t行,每行乙個整數,表示你所求的答案。
sample input
2sample output7 45 6
110data constraint121
解法:莫比烏斯反演,話說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...