整除分塊(數論分塊)


一個有趣的問題:

\(\sum_{i=1}^N \lfloor \frac Ni \rfloor\)\(N \leq 10^{12}\)

顯然不能直接做廢話

經過一番冷靜推理暴力打表 ,我們發現以下性質:

$ 1. \large \lfloor \frac Ni \rfloor$最多只有\(2\sqrt{N}\)種取值

證明:對於\(i\le \sqrt{N},\) 只有 \(\sqrt{N}\) 種,對於 \(i>\sqrt{N},\large{\frac Ni}<\sqrt{N}\),也只有 \(\sqrt{N}\) 種取值,共計 \(2 \sqrt{N}\)\(\;\;\Box\)

\(2.\) 設 $\large \lfloor \frac N{i'} \rfloor $ 與 \(\large \lfloor \frac Ni \rfloor\) 相等,則 \(i'\) 的最大值為 $\large \left \lfloor \frac N{\left \lfloor \frac Ni \right \rfloor\ } \right \rfloor $

證明:

\(\large{ \lfloor \frac Ni \rfloor}=k\) ,於是可以寫成 \(ki+p=N,1\le p<i\) 的形式,若 \(\large{\lfloor \frac N{i+d} \rfloor}=k\) ,於是有 \(k(i+d)+p'=N\) ,可以得到 \(p'=p-kd\) ,則 \(d\) 能取的最大值為 \(\large \lfloor \frac pk \rfloor\) ,於是 :

\[\begin{aligned}i'&=i+d_{max} \\ &=i+\lfloor \frac pk \rfloor \\&=i+\left \lfloor \frac {N \;mod\; i}{\lfloor \frac Ni \rfloor} \right \rfloor \\ &=i+\left \lfloor \frac {N-\lfloor \frac Ni\rfloor i}{\lfloor \frac Ni \rfloor} \right \rfloor \\ &=\left \lfloor i + \frac {N-\lfloor \frac Ni\rfloor i}{\lfloor \frac Ni \rfloor} \right \rfloor \\ &=\left \lfloor \frac{\lfloor \frac Ni \rfloor i}{\lfloor \frac Ni \rfloor} + \frac {N-\lfloor \frac Ni\rfloor i}{\lfloor \frac Ni \rfloor} \right \rfloor \\ &=\left \lfloor \frac N{\lfloor \frac Ni \rfloor} \right \rfloor \quad \quad\Box\end{aligned} \]

然后,設兩個指針 \(L\)\(R\)\(L\) 的初始值為 \(1\) ,每次令 \(\large R=\left \lfloor \frac N{\lfloor \frac NL \rfloor} \right \rfloor\) ,將 \(\large (R-L+1)\cdot \lfloor \frac NL \rfloor\) 累加至答案中 ,再令 \(L=R+1\)

由於 \(\large \lfloor \frac NL \rfloor\) 只有 \(2\sqrt N\) 種取值 ,且單調遞減,則最多只有 \(2\sqrt N\) 個取值不同的段,時間復雜度為 \(O(\sqrt N)\)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM