省选07. 多项式

P3338 [ZJOI2014]力

Ei=j=1i1qj(ij)2j=i+1nqj(ij)2

f(x)=qxg(x)=x2h(x)=qnx+1

前半部分为 (fg)(i),后半部分为 (hg)(i)

P3723 [AH2017/HNOI2017]礼物

i=0n1(xi+pyi)2=i=0n1xi2+yi2+p2+2(xiyi)p2i=0n1xiyi

d[0,n1]

i=0n1x(i)y(i+d)=i=0n1x(ni1)y(i+d)

P5488 差分与前缀和

设 给定的多项式为 F(x),那么 k 维前缀和为

F(x)×1(1x)k

k 维差分为

F(x)×(1x)k

考虑差分的情况怎么做

(1x)k=i=0n(1)i(ki)xi

(k0)=1(ki)=(ki1)×ki+1i

考虑前缀怎么做,第 x 项的答案为 (x+k1k1)

P5641 【CSGRound2】开拓者的卓识

考虑 y 会在 sum(k,1,x) 中计算几次。

sum(k,1,x)=y=1xa(y)(xy+k1k1)(y1+k1k1)=y=1xf(y)g(xy)

其中,f(x)=a(x)(x+k2k1)g(x)=(x+k1k1)

k 很大,因此需要递推计算 f(x)g(x)

(x+st)=(x+sx+st)

CF623E Transforming Sequence

f(i,j) 表示前 i 个数中选择 j1 的方案数(只考虑这 j1,忽略其它 kj 个位置)。

f(i,j)=p=1jf(i1,jp)(jp)2jp

f(n+m,i)=j=0if(n,j)f(m,ij)(ij)2mj

于是可以倍增

f(2n,i)=j=0if(n,j)f(n,ij)(ij)2nj

这就体现了设 f(i,j) 为只考虑 j1 的好处,它使得 dp 值可以合并。

如果不这么设,比如设 f(i,j) 表示前 i 个数中选择 j1 且要考虑位置的方案数,那么就只能得到一个递推式而得不到合并的式子,就无法解决该问题。

得到了合并的 dp 式,就可以使用倍增 FFT 解决。

CF1251F Red-White Fence

红板个数很少,于是考虑对每个红板单独处理。

先考虑长度小于红板的白板长度不重复的情况。

假设有 n 个这样的白板,选 i 个的答案为 (ni)2i

现在考虑重复的情况,可以发现,重复个数大于 2 等价于重复个数为 2

假设有 m 对重复的白板,选 i 个的答案为 (2mi)

设选择 x 个白板的答案为 f(x)

f(x)=i=0x(ni)2i(2mxi)

算出所有 f(x) 统计一下答案就行了。

posted @   yanchengzhi  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示