$O(k^2)$ 求前缀 $k$ 次幂和(与长度无关)
接下来求解前缀幂次和
求解 \(\sum_{i = 1}^{k} i^k\)
\[
\begin{aligned}
(p+1)^k - 1 = (p+1)^k - p^k + p^k - (p-1)^k + \dots + p^1 - 1 \\
(p+1)^k - p^k = \sum_{i=0}^{k-1} \binom{k}{i} p^i \\
(p+1)^k - 1 = \sum_{j=1}^{p} \sum_{i=0}^{k-1} \binom{k}{i} j^i = \sum_{i=0}^{k-1} \binom{k}{i} \sum_{j=1}^{p} j^i
\end{aligned}
\]
设 \(Psum(p, k) = \sum_{i = 1} ^ {p} i ^ k\) 即 \(k\) 次幂的前缀和
\[
\begin{aligned}
(p+1)^{k+1} - 1 = sum_{i=0}^{k} \binom{k+1}{i} Psum(p, i) \\
Psum(p, k) = \frac{ (p+1)^{k+1} - 1 - \sum_{i=0}^{k-1} \binom{k+1}{i} Psum(p, i) }{ \binom{k+1}{k} } \\
\end{aligned}
\]
这样就是跟 \(p\) 无关了, \(O(k ^ 2)\) 暴力推
随机推荐
- Asp.Net Core 工作单元 UnitOfWork UOW
Asp.Net Core 工作单元示例 来自 ABP UOW 去除所有无用特性 代码下载 : 去除所有无用特性版本,原生AspNetCore实现 差不多 2278 行代码: 链接:https://pa ...
- Windows环境Tomcat开启APR并配置http/2.0访问
1.http/2.0需要开启https 参考:https://www.cnblogs.com/zhi-leaf/p/11978615.html 2.下载tcnative-1.dll文件 官网下载地址: ...
- Python连载41-yield from详解、委派生成器
一. 1.yield from (1)调用协程为了得到返回值,协程必须正常终止 (2)生成器正常终止会发出StopIteration异常,异常对象的value属性保存返回值. (3)yield fro ...
- pytest 常见用法
前言 之前一篇文章简单介绍了 pytest 以及 fixture :https://www.cnblogs.com/shenh/p/11572657.html .实际在写自动化测试脚本中,还会有一些很 ...
- Focal Loss tensorflow 实现
def focal_loss(pred, y, alpha=0.25, gamma=2): r"""Compute focal loss for predictions. ...
- Logstash:Data转换,分析,提取,丰富及核心操作
Logstash:Data转换,分析,提取,丰富及核心操作 Logstash plugins Logstash是一个非常容易进行扩张的框架.它可以对各种的数据进行分析处理.这依赖于目前提供的超过200 ...
- Vertx上传 官网Demo Java版
package io.vertx.example.web.upload; import io.vertx.core.AbstractVerticle; import io.vertx.example. ...
- python3.0安装django2.0、xadmin
1.操作环境 Windows10.python3.8 2.安装django2.0 pip install django==2.0 x 1 pip install django==2.0 3.安装相 ...
- Python【day 11】迭代器
迭代器-用 1.迭代器的概念 1.可迭代对象-iterable str.list.tuple.dict.set.open().range() 2.可迭代对象的概念: 其数据类型的执行方法中含有__it ...
- 浅析Java中线程组(ThreadGroup类)
Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...