多项式相关

多项式,就是提供了一个代数手段解决问题。——rsy

1 多项式的次数

1.1 差分法

考虑一个数列 {an}。其是一个关于 nv 次多项式。

对数列做 d 阶差分之后变成一个非零常数数列(所有 ai 都是一个固定的非零常数)等价于多项式的次数为 d

证明:

考虑 an=i=1vwini
那么 anan1v 次项相减是这样的:

wvnvwv(n1)v

注意到 nv 系数清零。因此多项式降低一次。

归纳即可。

(对于 n 你发现可以代入一些数字,但是其是多项式主元,而常数和 n 无关的就不在次数里了)

CF622F The Sum of the k-th Powers

【题意】
i=1nik

n109,k106

【分析】

为什么这个式子是 k+1 次多项式?
考虑 a1=1k,a2=1k+2k...
差分一次之后变成 1k,2k,...,nk 显然为 k 次多项式。
证完了。

然后就可以插值。计算 ik 可以线性筛,因为它是完全积性函数。

时间复杂度 O(k)

CF1817C Similar Polynomials

【题意】
给定两个多项式 f(x)g(x),其中 g(x)=f(x+t)。给定多项式的次数 d 以及 0d 处的点值,求 t

【分析】
考虑 d1 次差分之后会变成一个一次函数(等差数列)。Δd1f 放到坐标轴上,往左平移 t 个单位,就是 Δd1g 了。

image

代数形式是:ax+ba(x+t)+bx 固定的情况下差值为 at,于是除以 a(斜率)即可。

你如果换成别的次数(大于 0)也能算,但是解的就是高次方程了。

d1 阶差分怎么做:

a0a1a2a3a4a1a0a2a1a3a2a4a3a22a1+a0a32a2+a1a42a3+a2a33a2+3a1a0a43a3+3a2a1

也即 Δdfi=j=0daij×(dj)×(1)ij

斜率是什么?Δd1fdΔd1fd1

CF1832E Combinatorics Problem

【题意】
给定 n,k 和数组 a1,...,an,求出 {bn} 使得:

bi=j=1i(jk)aij+1mod998244353

1n107,1k5
【分析】
我们列出每一项的展开形式:

b1=(1k)a1b2=(2k)a1+(1k)a2b3=(3k)a1+(2k)a2+(1k)a3...

对于多项式 fn=(nk),其是一个 k 次多项式,因为它等于 n[k]k!

那么我们如果对数列 b1,b2,...k 阶差分会变成常数。打表不难发现常数为 1

于是我们构造:

c1=a1c2=a1+a2c3=a1+a2+a3...

再对 c 数组做 k 阶差分即可。时间复杂度 O(nk)

另解:
考虑 (ij)=(i1j1)+(i1j),那么如果令 Bi,j 表示 k=j 的时候 bi 是多少,那么 Bi,j=Bi1,j1+Bi1,j+(1j)ai。可以递推得到,时间复杂度也是 O(nk)

posted @   OIer某罗  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示