主页/OI/P15395-phantom
2026年5月5日预计 3 分钟阅读OI

题解:P15395 幻影之春 / phantom

zbl2012
zbl2012博主 & 创作者

原题Link

有点牛的数学题。

题意

i=1ni\sum_{i=1}^n \lfloor\sqrt{i}\rfloor

Solution

注意到 n1018n\le 10^{18} 发现是数学题。

这里介绍 O(1)O(1) 的做法。

首先将 x\lfloor\sqrt{x}\rfloor 拆解。 发现 x\lfloor\sqrt{x}\rfloor 是存在一个 jj 使 j2=xj^2=x,要使这个 j2j^2 无限接近于 x\lfloor\sqrt{x}\rfloor,所以可以得出以下式子:

x=j=1[j2x]\lfloor\sqrt{x}\rfloor=\sum_{j=1}^{\infty}[j^2\le x]

把这个式子代替 i\lfloor\sqrt{i}\rfloor,放进原式。

i=1ni=i=1nj=1[j2x]=j=1ni=j2n1=j=1n(nj2+1)=(n+1)×nj=1nj2\begin{aligned} \sum_{i=1}^n \lfloor\sqrt{i}\rfloor&=\sum_{i=1}^{n}\sum_{j=1}^{\infty}[j^2\le x]\\ &=\sum_{j=1}^{\lfloor\sqrt{n}\rfloor}\sum_{i=j^2}^n 1\\ &=\sum_{j=1}^{\lfloor\sqrt{n}\rfloor} (n-j^2+1)\\ &=(n+1)\times\lfloor\sqrt{n}\rfloor-\sum_{j=1}^{\lfloor\sqrt{n}\rfloor} j^2 \end{aligned}

平方和公式如下:

i=1ni2=n×(n+1)×(2n+1)6\sum_{i=1}^n i^2=\frac{n\times (n+1) \times (2n+1)}{6}

将该公式的 nn 代入 x\lfloor\sqrt{x}\rfloor,得:

ans=(n+1)×xx×(x+1)×(2×x+1)6\text{ans}=(n+1)\times \lfloor\sqrt{x}\rfloor-\frac{\lfloor\sqrt{x}\rfloor\times(\lfloor\sqrt{x}\rfloor+1)\times(2\times\lfloor\sqrt{x}\rfloor+1)}{6}

时间复杂度 O(1)O(1)

文章留言区

已有 0 条精彩探讨

正在拼命加载留言中...

发表您的见解

※ 提倡客观理性讨论。留言需要经过安全核查,请勿注入恶意链接。
上一篇文章题解:AT_abc185_e [ABC185E] Sequence Matching下一篇文章 三角函数学习笔记