D. The Number of Pairs 數學

D. The Number of Pairs

題意

給你\(c, d, x\),求滿足\(c \cdot lcm(a, b) - d \cdot gcd(a, b) = x\)的點對\((a, b)\)的個數。
\(T\)組數據
\(T <= 10^4\), \(c, d, x <= 10^7\)

題解

爲了表示簡單一點,令\(l = lcm(a, b), g = gcd(a, b)\)
\(cl - dg = x\)
由一些常識,我們知道\(lcm(a, b) \cdot gcd(a, b) = a \cdot b\)
所以\(l = \frac{ab}{g}\)
\(\therefore \frac{cab}{g} - dg = x\)
因爲\(g\)\(gcd(a, b)\),所以可設\(a = kg, b = tg\)
代回原式

\[cktg - dg = x \]

\[g = \frac{x}{ckt - d} \]

因爲\(g\)是整數,所以\(ckt - d\)\(x\)的因子
所以我們枚舉\(i = ckt - d\)
易知對於一個已知的\(g\)而言,\((k, t)\)\((a, b)\)是一一對應的關係
所以我們要統計\((a, b)\)相當於統計\((k, t)\)
又因爲\(gcd(a, b)\)是最大公約數,所以\(k, t\)必互質,否則就可以將\(gcd(k, t)\)加入\(gcd(a, b)\)使其變得更大

\[\because i = ckt - d \]

\[\therefore kt = \frac{i + d}{c} \]

當我們枚舉\(i\)時,\(\frac{i + d}{c}\)爲常量
所以我們就是對於一個常量找互質的數對\((k, t)\)使其滿足數對乘積等於這個常量
相當於對這個常量質因數分解,把分解出來的質因數分成兩份,找合法的分配方案數
\(\frac{i + d}{c} = \prod_{j<=m}{p_j^{f_j}}\), \(m\)\(\frac{i + d}{c}\)的質因數種數,\(f_j\)表示\(p_j\)這個質因數有\(f_j\)
那麼因爲分出來的兩部分互質,所以對於一個質因數\(p_j\)要麼全給\(k\)要麼全給\(t\)
所以由一些數學常識(對於每個質因數要麼選要麼不選),我們可以知道,方案數爲\(2^m\)
所以\((k, t)\)的對數就是\(\sum_{i | k}{2^{m(i)}}\)
對於每組詢問,我們暴力枚舉\(x\)的因子\(i\), 對於每個\(i\),我們找出\(\frac{i + d}{c}\)對應的質因數種數\(m(i)\)
統計一下\(\sum{2^{m(i)}}\)就是答案

\(m(i)\)可以歐拉篩預處理一下搞搞,
複雜度\(O(N + T \cdot \sqrt{N})\)

代碼…………
還沒寫……鴿王天天鴿

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章