洛谷 P8762 [蓝桥杯 2021 国 ABC] 123 题解

发布时间 2023-04-02 09:52:14作者: ZyIOLO

为什么可以使用前缀和,这里提供解释:
初读题目,我们发现这个数列很迷惑,似乎不能使用数学方法来解。

\[1,1,2,1,2,3,1,2,3,4,\cdots \]

但是,我们可以想到 数形结合 的方式,我们将数列看作一个三角形,于是他变成了:

\[1 \]

\[1,2 \]

\[1,2,3 \]

\[1,2,3,4 \]

\[\cdots\cdots \]

于是本题变得好思考了些:我们只要记录每一行的总和,再记录到数列第 \(n\) 项的前缀和,然后在每次输入 \(l,r\) 时,答案便等于数 \(r\) 所在的行最后一个数位置的前缀和,减去数 \(r\) 所在行的位于 \(r\) 后面的数的总和,减去 \(l,r\) 两数所在行之间所有行的和,再减去数 \(l\) 所在行的位于 \(l\) 之前的所有数的和。
使用 tmp * (tmp + 1) / 2 的方式来估计行,最后再进行前缀和相减。