hdu 1695 莫比烏斯反演
來源:程序員人生 發布時間:2015-04-03 08:08:40 閱讀次數:2424次
hdu 1695 莫比烏斯反演
題意:
給出a,b,c,d,k, 求滿足a <= x <= b && c <= y <= d && gcd(x,y)=k 的數對(x,y)的對數。
限制:
a=c=1; 0 < b,c <= 1e5; (n1,n2) 和 (n2,n1) 算為同種情況
思路:
實際上是求滿足1 <= x <= b/k && 1 <= y <= d/k && gcd(x,y)=1 的 數對(x,y)的對數。
莫比烏斯反演入門題
設f(k)為gcd(x,y)=k的數對(x,y)的對數,我們要求的是f(1)
設F(k)為gcd(x,y)為k的倍數的數對(x,y)的對數,可以想到F(k)=floor(b/k)*floor(d/k),
由莫比烏斯反演得:
令lim=min(b/k,d/k)
f(1)=mu[1]*F(1) + mu[2]*F[2] + ... + mu[lim]*F(lim)
由于(n1,n2)和(n2,n1)算為同1種情況,所以最后結果還要減掉重復的情況。
ps:這道題還可以用容斥做。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------