$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)\) 暴力推
随机推荐
- Python中的赋值、深拷贝与浅拷贝(内存地址)
Python中的赋值.深拷贝与浅拷贝(内存地址) 1.python中的可变对象与不可变对象 (1) 可变对象:dict,list def dict_test(): a = {} b = a print ...
- usb设备在sysfs中的命名规范
"root-hub的编号"-"设备(或者hub)插入的端口号"[."设备(或者hub)插入的端口号"]:"USB设备配置号&quo ...
- 基于Django的Rest Framework框架的频率组件
0|1一.频率组件的作用 在我们平常浏览网站的时候会发现,一个功能你点击很多次后,系统会让你休息会在点击,这其实就是频率控制,主要作用是限制你在一定时间内提交请求的次数,减少服务器的压力. modle ...
- etcd+https部署
关闭防火墙 关闭selinux 下载所需的包(cfssl,生成证书工具) mkdir /usr/local/src/etcd/ cd /usr/local/src/etcd/ wget https:/ ...
- 修改Hexo自动生成的HTML文件名
导读 我们在使用Hexo框架生成静态博客时,其实是将你写好的.md文件输出成HTML文件进行渲染,其中HTML的文件名称就是.md的文件名称. 而我们为了编辑文章方便,为了通过文件名就知道这是哪篇文章 ...
- SqlBulkCopy将DataTable中的数据批量插入数据库中
#region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 /// <summary> /// 注意:DataTable中的列需要与数据库表中的列完全一致.// ...
- centos crontab定时任务用法
一.安装crond服务 yum -y update yum -y install cronie yum-cron 二.crontab任务语法 crontab任务配置基本格式: * * * * * co ...
- Centos安装jdk1.8出现-bash: //usr/local/soft/jdk1.8.0_191/bin/javac: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录错误。
1.从来没有这么郁闷,之前安装都是好好的,自从将Centos升级到7.0版本,安装了jdk报了这个错误,也是郁闷的一毛,参考了一下百度的,记录一下.使用java命令还有java -version命令都 ...
- Python - 迭代器与生成器 - 第十三天
Python 迭代器与生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问 ...
- Python 摘要算法hashlib 与hmac
参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017686752491744 摘要算法(也成为哈希算法)是用来防篡改的,因为我们的即使 ...