[SPOJ 6694] Playing with Marbles 题解

这道题是让你求第 \(n+1\) 个五边形数,多组数据。

楼上已经给出了 \(O(n+t)\) 的解法,但是这个解法太不优秀了。

考虑 \(O(t)\) 通项公式解。

现在手动推一下,很明显, \(f_1=1,f_n=f_{n-1}+3n-2\)

我不满意,这样一次询问的复杂度就是 \(O(n)\) 的了!

仔细观察,然后尝试对差分求出前缀和,对于每个询问 \(O(1)\) 解决,用通项公式表达为 \(f_n=\frac{n(3n-1)}{2}\).

然后我们就可以求出第 \(n+1\) 个五边形数了。

posted @ 2020-07-05 22:43  Inversentropir-36  阅读(138)  评论(0)    收藏  举报