$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)\) 暴力推
随机推荐
- eclipse复制bpmn文件到idea下乱码问题处理
1.最近在学习工作流,在eclipse上画完了流程图,然后复制到idea下,发现节点的汉字是乱码的. 2.处理方案是修改idea的配置文件,如图,打开这两个文件,在文件末尾加上 -Dfile.enco ...
- 5个你可能不知道的html5语义化标签
1.<ruby>:该标签作用为注释(中文注音或字符),比如可实现下面样式 详见:https://www.w3cschool.cn/html5/html5-ruby.html 2.< ...
- SpringBoot入门-SpringBoot性能优化
SpringBoot启动优化 显示声明扫包范围: 即不使用@SpringBootApplication默认扫包,使用@ComponentScan(basePackages = { "com. ...
- 阿里云容器服务中国最佳,进入 Forrester 报告强劲表现者象限
近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告. 报告显示:阿里云容器服务创造了中国企业最好成绩,与谷歌云位于同一水平线,进入强劲表现者象限. 究其原因,分析师认为: ...
- 绑定 Binding Path=.,Binding.,Binding Source={StaticResource ResourceKey="Hello"} xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:sys="clr-namespace:System;assembly=mscorlib" <Window.Resources> <Style Targ ...
- Python语言获取目录下所有文件
#coding=utf-8# -*- coding: utf-8 -*-import osimport sysreload(sys) sys.setdefaultencoding('utf-8') d ...
- Docker install in Linux
install command sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-man ...
- ASCII,Unicode,UTF-8,GBK 区别
编码历史与区别 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又 ...
- npm 查看全局安装模块
方法一: npm list -g --depth 0 方法二: 输入npm root -g 得到全局node_modules的地址 在任意文件夹输入此地址,便可查看所安模块 https://blog ...
- Linux 用epoll实现的简单http服务器
Linux 用epoll实现的简单http服务器 main.c #include <stdio.h> #include <sys/types.h> #include <s ...