自然数幂求和:
给定正整数N,K , 求
N∑i=1iK
证明:上式是一个关于N的K+1次多项式.
定义:对于一个数列{an}如果数列中的数全部相等,则称其为常数数列。
对于数列{an} , 令数列{bn}满足bi=ai+1−ai,那么称b是a的一阶差分数列,记作Δa。
平常所说的等差数列的一阶差分数列就是常数数列。
b的一阶差分数组为a的二阶差分数列,表示为Δ2a.
以此类推 a的p阶差分数列记为Δpa=Δ(Δp−1a)
如果数列 a 的p阶差分数列为非0常数数列,则记a为p阶等差数列。
定理:某个数列是一个p阶等差数列当且仅当他的通项公式是一个p次多项式。
证明:设数列{An}.其通项公式为A(x)=∑tixi.
设{Tn}为其一阶差分数列,则有
T(x)=A(x+1)−A(x)
=N∑i=0ti((x+1)i−xi)
容易发现T(x)这个多项式的第n−1项系数为0,这就代表着每做一次差分变换,数列的通项公式次数将下降1.
于是定理显然成立。
令
f(x)=x∑i=1iK
考虑Δf(x)=(x+1)K,也就是说f的差分数列的通项公式是一个K次多项式,这也就说明了f实际上是一个K+1次多项式。
在证明了它的性质之后,我们就可以用拉格朗日插值法求解这个式子。
首先我们可以在O(KlogK)时间内求出前K+2项。
一般的拉格朗日插值法:
f(k)=n∑i=0yi∏i≠jk−x[j]x[i]−x[j]
这样是O(K2)的,需要想办法优化,容易发现取值连续,于是上一个套路的优化:
令prei=∏ij=0k−x[j],sufi=∏nj=i+1k−x[j]
f(k)=n∑i=0yi∏i≠jk−x[j]x[i]−x[j]
=n∑i=0yi∏i≠jk−x[j]∏i≠jx[i]−x[j]
=n∑i=0yiprei−1∗sufi+1(−1)N−ii!(N−i)!
之后这个式子里每一项都很好求了。
题目来源:CF622F
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!