码迷,mamicode.com
首页 > 其他好文 > 详细

多项式与点值式

时间:2020-06-09 16:57:42      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:line   模板题   直接   通过   长度   play   display   idf   isp   

多项式与点值式

正常\(\text{DFT/IDFT}\)是构造一个特殊的点值式,即\(x_i=\omega_{n}^i\)

如果能通过题目条件构造出来这样的点值,就可以直接\(\text{DFT/IDFT}\)

那如果不能的话。。。。。

多项式多点求值

一个多项式\(F(x)\)我们求它在\(x_0,x_0,\cdots x_{m-1}\)上的点值

核心是分治+多项式取模,因此常数很大

对于当前分治区间\([l,r]\in[0,m-1]\)

需要快速构造一个长度为\(\frac{r-l+1}{2}\)的等价多项式进入分治区间

\(G_{l,r}(x)=\prod_l^r(1-x_i)\)

由于\(G_{l,r(x_l)}=\cdots=G_{l,r}(x_r)=0\)

所以可以将\(F(x)\)对于\(G_{l,mid}(x)\)\(G_{mid+1,r}(x)\)分别取模之后得到两个等价式

递归到\([l=r]\)时,\(F(x)\)只剩下常数项

需要被访问的\(G(x)\)可以预先跑一遍分治NTT求出

那么复杂度就是\(O(n\log ^2n)\)

\[\ \]


多项式快速插值

对于点对\((x_i,y_i)\)

多项式拉格朗日插值的式子是

\[\begin{aligned}F(x) = \sum_{i=0}^{n-1} y_i \prod_{i\ne j} \frac{x-x_j}{x_i-x_j}\end{aligned} \]

那么需要快速求出\(\prod \frac{1}{x_i-x_j}\)

构造多项式\(G(x)=\prod (x-x_i)\)

那么\(\prod (x_i-x_j)=\frac{G}{x-x_i}(x_i)\)

由于\(G(x),x-x_i\)\(x_i\)上的点值均为\(0\)

我们要求的多项式就是\(\begin{aligned} \prod_{i\ne j} (x_i-x_j) \end{aligned}=\frac{G(x)}{x-x_i}\)

即求出\(\frac{G}{x-x_i}(x_i)\)

分母分子均为\(0\),所以带入洛必达法则\(\begin{aligned}\frac{G}{x-x_i}(x_i)=\frac{G‘}{(x-x_i)‘}(x_i)=G‘(x_i)\end{aligned}\)

那么求出\(G‘(x)\),然后多项式多点求值即可

剩下那一部分的答案,可以简单地分治合并上来,\([l=r]\)时,多项式是一个常数

合并上来时

\([l,mid]\)的答案补上\(\prod_{mid+1}^r (x-x_i)\)

\([mid+1,r]\)的答案补上\(\prod_{l}^{mid} (x-x_i)\)

即复杂度为\(O(n\log ^2n)\)

垃圾模板题卡常


多项式与点值式

标签:line   模板题   直接   通过   长度   play   display   idf   isp   

原文地址:https://www.cnblogs.com/chasedeath/p/13073178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!