1. 程式人生 > >「自選題」Div

「自選題」Div

clas sigma end play .com 條件 進行 inf mark

「自選題」Div

題意

已知:\(n(1 \le n \le {10} ^ {12})\)

條件:

定義 \(a + bi | k\) ,當且僅當存在 \(c + di\) ,使得 \((a + bi)(c + di) = k\)

\(f(n) = \sum_{a + bi | n, a > 0} a\)

求:\(ans = \sum_{i = 1} ^ n f(i)\)

分析

首先肯定要分析 \(a + bi | n\) 的含義。

$ac - bd = k, bc + ad = 0 $


\[ \begin{vmatrix} a & -b \\ b & a \end{vmatrix} | \begin{vmatrix} k & -b \\ 0 & a \end{vmatrix} \\ \begin{vmatrix} a & -b \\ b & a \end{vmatrix} | \begin{vmatrix} a & k \\ b & 0 \end{vmatrix} \]


\(a ^ 2 + b ^ 2 | ak, a ^ 2 + b ^ 2 | bk\)

\(a ^ 2 + b ^ 2 | (a, b) k\)

代入原式,
\[ ans = \sum_{k = 1} ^ n \sum_{ai + b | k, a > 0} a = \sum_{k = 1} ^ n \sum_{a > 0, b} [a ^ 2 + b ^ 2 | (a, b) k] a \]
\(b > 0\)\(b < 0\) 的貢獻相同,\(b = 0\) 可以輕易處理。
\[ \begin{aligned} ans & = \sum_{k = 1} ^ n \sum_{a > 0} [a | k] a + 2 \sum_{k = 1} ^ n \sum_{a, b > 0} [a ^ 2 + b ^ 2 | (a, b) k] a \\ & = \sum_{k = 1} ^ n \sigma(k) + 2 \sum_{k = 1} ^ n \sum_{a, b > 0} [a ^ 2 + b ^ 2 | (a, b) k ] a \end{aligned} \]


根據整除模型,

技術分享圖片

通過枚舉 \(d = (a, b), dx = a, dy = b\) 來實現枚舉 \(a, b\)
\[ T = \sum_{k = 1} ^ n \sum_{d, x, y > 0, (x, y) = 1} [d(x ^ 2 + y ^ 2) | k] dx \]
這時候有兩種想法,我可以先枚舉 \(d\) ,或者先枚舉 \(x, y\) ,事實證明枚舉 \(x, y\) 比較好。
\[ \begin{aligned} T & = \sum_{k = 1} ^ n \sum_{(x, y) = 1} x \sum_{d | \frac{k}{x ^ 2 + y ^ 2}} d \\ & = \sum_{k = 1} ^ n \sum_{(x, y) = 1} x \sigma(\frac{k}{x ^ 2 + y ^ 2}) \\ & = \sum_{(x, y) = 1} x \sum_{i = 1} ^ {\lfloor \frac{n}{x ^ 2 + y ^ 2} \rfloor} \sigma(i) \end{aligned} \]


考慮要進行分段求和,所以枚舉 \(t = x ^ 2 + y ^ 2\)
\[ T = \sum_{t = 1} ^ n ( \sum_{i = 1} ^ {\lfloor \frac{n}{t} \rfloor} \sigma(i) ) \sum_{(x, y) = 1} [x ^ 2 + y ^ 2 = t] x \]
接下來考慮如何求
\[ F(n) = \sum_{t = 1} ^ n \sum_{(x, y) = 1} [x ^ 2 + y ^ 2 = t] x = \sum_{(x, y) = 1} x [x ^ 2 + y ^ 2 \le n] \]
考慮保留了部分條件的輔助問題,
\[ G(n) = \sum_{x, y} x [x ^ 2 + y ^ 2 \le n] = \sum_{x = 1} ^ {\lfloor \sqrt n \rfloor} x \lfloor \sqrt{n - x ^ 2} \rfloor \]
枚舉 \(d = (x, y)\) ,建立 \(G\)\(F\) 的關系。
\[ G(n) = \sum_{d = 1} ^ n d \sum_{dx, dy} x [x ^ 2 + y ^ 2 \le \lfloor \frac{n}{d ^ 2} \rfloor] = \sum_{d = 1} ^ n d F(\lfloor \frac{n}{d ^ 2} \rfloor) \]
把第一項提出,有
\[ F(n) = G(n) - \sum_{d = 2} ^ n d F(\lfloor \frac{n}{d ^ 2} \rfloor) \]
對前 \(n ^ {\frac{2}{3}}\) 項進行預處理,總的時間復雜度為 \(O(n ^ {\frac{2}{3}})\)

「自選題」Div