如何通过二项式定理快速解决此问题?还有另一种方法吗?

时间:2018-09-27 09:49:53

标签: algorithm

我要解决的问题是当l, r, k的值被赋予M次时,找到下面公式的值。

 r
 Σ  [ Ai × (i-l+1)^k ]
i=l

范围是:1 ≤ l ≤ r ≤ N0 ≤ k ≤ 101 ≤ N, M ≤ 10 ^ 5

我想知道在时限为2秒时如何解决此问题。

1 个答案:

答案 0 :(得分:2)

为清楚起见,重新编写公式:

enter image description here

定义和计算查找表 B,如下所示:

enter image description here

使用二项式定理扩展(i - l + 1)^k项,其中(k, j)Binomial coefficient

enter image description here

因此,该查找表可用于在 S(l, r, k) 时间复杂度下计算O(k)的每个值。比天真算法的 O(r - l) = O(N) 好得多!

通过替换索引稍微重写上面的公式,以使求和更简单:

enter image description here

如果您需要,我会提供代码,但我强烈建议您尝试首先自己实现。