$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)\) 暴力推
随机推荐
- git 邮箱错误-git log 中发现 XXX@163.com邮箱不符合要求,请务必使用公司邮箱。
场景描述: 重新配置电脑之后,提交了git,邮箱发生错误. git log # 查看日志git reset 版本 # 回到之前的版本,版本回退git config --global user.name ...
- Pytorch数据类型转换
Pytorch数据类型转换 载入模块生成数据 import torch import numpy as np a_numpy = np.array([1,2,3]) Numpy转换为Tensor a_ ...
- docker 更新内存限制步骤
停止容器: docker stop id 更新配额: docker update -m 80G id 内存参数和大小 容器ID重启容器:docker start id
- 从游击队到正规军:马蜂窝旅游网的IM系统架构演进之路
本文引用自马蜂窝公众号,由马蜂窝技术团队原创分享. 一.引言 今天,越来越多的用户被马蜂窝持续积累的笔记.攻略.嗡嗡等优质的分享内容所吸引,在这里激发了去旅行的热情,同时也拉动了马蜂窝交易的增长.在帮 ...
- navicat远程连接mysql的方法
navicat远程连接mysql的方法1 先在打开phpmyadmin 添加用户 用户名和密码自己设置 设置如下 2 关闭防火墙service iptables status可以查看到iptables ...
- Nginx Cache-Control
转自:https://www.cnblogs.com/sfnz/p/5383647.html HTTP协议的Cache-Control指定请求和响应遵循的缓存机制.在请求消息或响应消息中设置 Cach ...
- Asp.Net真分页技术
最近学校要做课题,闲来没事研究了下Asp.net的分页,我使用Repeater进行数据的绑定,每次从数据库读取到8条数据填充到Repeater中,这样搞可以降低数据库的压力,提高效率. 效果图如下: ...
- 在Linux系统中运行并简单的测试RabbitMq容器
以前使用的是Windows下面的RabbitMq,需要先安装 Erlang的语言环境等,这次直接在Linux中的Docker容器来测试一下 1:docker配置RabbitMq的指令 docker r ...
- laravel 163发送邮件
配置163邮箱账户 首先需要有163邮箱,这里在163邮箱必须在设置里面开启SMTP服务,并设置密码 修改laravel根目录下的.env文件, 设置邮箱相关内容: MAIL_DRIVER=smtp ...
- MySql数据库中正则表达式
命令 说明 ^ 在字符的开启处进行匹配 $ 在字符的末尾处进行匹配 . 匹配任何字符(包括回车和新行) [-.] 匹配括号内的任意单个字符 [m-n] 匹配m到n之间的任意单个字符,例如[0-9],[ ...