多项式&生成函数

多项式和生成函数

多项式

鸽掉了多项式开根(加强版).

这里放一份多项式板子合集

多项式乘法

背个板子就好了.

FFT

泰勒展开与麦克劳林级数

若\(f(x)\)在\(x=x0\)处存在\(n\)阶导,那么:
\[
\begin{align}
f(x)&=f(x0)+\frac{f^1(x0)}{1!}(x-x0)+\frac{f^2(x0)}{2!}(x-x0)^2+...+\frac{f^n(x0)}{n!}(x-x0)^n+\xi\&=\sum_{i=0}^n\frac{f^i(x0)}{i!}(x-x0)^i+\xi
\end{align}
\]
\(\xi\)是余项,当\(n\)无穷大时\(\xi\)为高阶无穷小.

特殊情况是\(x0=0\)是的泰勒展开,称之为麦克劳林级数.

\(f(x)=\sum_{i=0}^n\frac{f^i(0)}{i!}x^i\)

比较常见的是\(e^x\)的展开:\(e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+...\)

牛顿迭代

一个很有用的东西.

我们知道任何一种多项式运算都可以变成一种运算\(F(x)\)和一个多项式\(B(x)\),满足
\[
F(B(x)) \equiv 0(\text{mod}\ x^n)
\]
例如 如果要求逆,那么\(F(B(x))=A(x)*B(x)-1 \equiv 0\)

现在考虑当\(n=1\)的时候很好求是吧.

考虑用\(n\)扩展到\(2n\)的情况:令\(B_{n}(x)\)表示满足\(n\)的解.

将\(F(B_{2n}(x))\)在\(B_n(x)\)处泰勒展开,有:
\[
F(B_{2n}(x))=F(B_n(x))+\frac{F'(B(x))}{1!}(B_{2n}(x)-B_n(x))+...
\]
此时我们发现后面的项都是没有用的,因为:

\[
F(B_{2n}(x))\equiv 0(\text{mod }x^{n})
\]
然后不难发现,\(B_{2n}(x)\)的后\(n\)项和\(B_n(x)\)没有区别,那么当变成\((B_{2n}-B_n(x))^2\)的时候就会把它全部覆盖,所以此时一定满足\(F(B_{2n}(x))\)的性质,也就是\(\text{mod }x^n\equiv 0\).

这个时候我们把式子化成了:
\[
B_{2n}(x)=B_n(x)-\frac{F(B_n(x))}{F'(B_n(x))}
\]
注意求导是对\(B_n(x)\)求导.然后就可以递归求解了.

多项式求逆

\(F(B_n(x))=A(x)*B_n(x)-1 \equiv 0\).

那么此时可以得到:

\[
\begin{align}
B_{2n}(x)&=B_n(x)-\frac{A(x)*B_n(x)-1}{A(x)}\&=B_n(x)-(A(x)*B_n(x)-1)B_n(x)\&=2B_n(x)-A(x)*B^2_n(x)
\end{align}
\]

多项式开根

\(F(B_n(x))=B_n^2(x)-A(x)\equiv 0\)

此时可以得到:
\[
\begin{align}
B_{2n}(x)&=B_n(x)-\frac{B_n^2(x)-A(x)}{2B_n(x)}\&=\frac{1}{2}(\frac{B^2_n(x)+A(x)}{B_n(x)})\&=\frac{1}{2}(B_n(x)+\frac{A(x)}{B_n(x)})
\end{align}
\]

需要用到多项式求逆.

多项式求导

\((x^n)'=n*x_{n-1}\),导数具有线性性,直接算即可.

多项式积分

\(\int x^n=\frac{1}{n+1}x^{n+1}\),同样满足线性性.

多项式ln

\[
ln(A(x))=B(x)\ln'(A(x))=B'(x)\\frac{A'(x)}{A(x)}=B'(x)
\]

直接复合函数求导之后求导+乘法\(\to\)积分即可.

多项式exp

看到这里应该没有人不知道\(exp(x)\)是\(e^x\)吧.
\(F(B_n(x))=\ln B_n(x)-A(x)\equiv 0\)
\[
\begin{align}
B_{2n}(x)&=B_n(x)-\frac{ln\ B_n(x)-A(x)}{\frac{1}{B_n(x)}}\&=B_n(x)-B_n(x)(\ln B_n(x)-A(x))\&=B_n(x)(1-\ln B_n(x)+A(x))
\end{align}
\]
要套用多项式\(\ln\)和多项式乘法.

多项式快速幂

\[
B(x)=A^k(x)\\ln B(x)=k\ln A(x)
\]

直接取\(\ln\)然后每一个系数乘再做一个\(\exp\)即可.

多项式除法

给定一个长度为\(n\)的多项式\(A(x)\),一个长度为\(m\)的多项式\(B(x)\),求一个长度为\(n-m\)的多项式\(C(x)\)和一个长度小于\(n-m\)的多项式\(R(x)\).

首先我们定义一个运算\(Reverse\)为\(A^R(x)=x^nA(\frac{1}{x})\),其实就等于翻转\(A\)多项式的系数.

那么这个时候有:
\[
A(x)=B(x)*C(x)+R(x)\A(\frac{1}{x})=B(\frac{1}{x})*C(\frac{1}{x})+R(\frac{1}{x})\x^nA(\frac{1}{x})=x^mB(\frac{1}{x})*x^{n-m}C(\frac{1}{x})+x^nR(\frac{1}{x})\A^R(x)=B^R(x)*C^R(x)+R^R(x)*x^{n-m+1}
\]
然后把这个式子在\(\mod x^{n-m+1}\),就是:

\[
A^R(x)=B^R(x)*C^R(x)\C^R(x)=\frac{A^R(x)}{B^R(x)}
\]
直接套用多项式求逆即可.
\(R(x)=A(x)-B(x)*C(x)\),直接计算即可.

其他

zsy小哥哥博客

这里面还有一点小东西没有搞,以后再说鸽了

看完上面的你就可以去做多项式板子

但是那个开根要用二次剩余,他不保证\(a[0]=1\).

生成函数

普通型生成函数(\(\text{OGF}\))

考虑一个数列\(A=<a_0,a_1,a_2,...>\),他的\(\text{OGF}\)是\(a_0+a_1x+a_2x^2+...\)

例如斐波那契数列的\(\text{OGF}\)就是\(0+1x+1x^2+2x^3+...\)

指数型生成函数(\(\text{EGF}\))

对于数列\(a\),他的\(\text{EGF}\)是\(\sum_{i=0}^{\infty}\frac{a_i}{i!}x^i\)

\(e^x\)的就是数列\(<1,1,1,1,...>\)的\(EGF\).

未完待续.

原文地址:https://www.cnblogs.com/fexuile/p/12289196.html

时间: 2024-10-15 20:48:10

多项式&生成函数的相关文章

「总结」多项式生成函数例题(4)

就是大概做点题: 1.(车万题?)哈德曼的妖怪少女 http://121.17.168.211:8005/contest/275/problem/2 这个题考场上不会复合逆,打表出了小于6的,剩下的部分就可以直接用类似数树的方法用\(exp\)统计了. 然后说一下正解. 其实这个题分两步. 第一步:求出大小为某个数的边双的方案数. 第二步:用类似数树的方法组合各个边双,成为一颗边双树. 对于做过了数树的我来说第二步仅仅是一个套路. 难点在于第一步. 不妨先计算有根边双的数目. 设\(b_i\)为

「总结」多项式生成函数例题(1)

1.礼物 先给你们来个简单点的. http://hzoj.com/contest/220/problem/1 那么其实就是在求最小的: \[\begin{array}{rcl}ans&=&\sum\limits_{i=1}^{n}(x_i-y_i+c)^2\\&=&\sum\limits_{i=1}^{n}(x_i-y_i)^2+2(x_i-y_i)c+c^2\end{array}\] 可以发现贡献分成了两部分. 一部分的变量是\(c\)另一部分是\(x,y\). 这样分别

「总结」多项式生成函数例题(2)

是\(FWT\)的例题了. 这里我做的题也不多,教练说尽可能多的讲. 只能给你们讲所有我做过的了. 1.按位或 http://hzoj.com/contest/126/problem/13 题解直接发链:https://www.cnblogs.com/Lrefrain/p/11655078.html 2.随机游走 http://hzoj.com/contest/220/problem/5 题解直接发链:https://www.cnblogs.com/Lrefrain/p/11655078.htm

Project Euler 101 :Optimum polynomial 最优多项式

Optimum polynomial If we are presented with the first k terms of a sequence it is impossible to say with certainty the value of the next term, as there are infinitely many polynomial functions that can model the sequence. As an example, let us consid

2020寒假训练记录

目标: 信息学奥赛之数学一本通重学 第一章 数论 第三章 组合数学 第四章 概率 第六章 矩阵 网络流 DP 多项式 生成函数 CFdiv1 30题 整理模板 2020-01-10 添加模板: 辛普森积分 中国剩余定理 矩阵乘法 提交:POJ1006 原文地址:https://www.cnblogs.com/FYH-SSGSS/p/12177888.html

待更新算法

网络流 最大流和最小费用最大流原理 上下界网络流 模拟费用流 网络流建模总结 带花树 树 树上倍增 树链剖分 点分治 基环树 DP 概率期望dp 单调队列dp 状压dp 斜率优化dp 计算几何 模板 半平面交 好题 数据结构 线段树高级应用 可持久化线段树 Treap Splay 可持久化平衡树 树套树 分块 莫队 数学 多项式 生成函数 斯特林数 FWT min_25 筛 二次剩余 线性递推 线性基 线性代数 线性规划 群论 字符串 KMP,Z-algorithm,Manacher SA SA

[BZOJ3456]城市规划(生成函数+多项式求逆+多项式求ln)

城市规划 时间限制:40s      空间限制:256MB 题目描述 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了.  刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或间接的连通. 为了省钱, 每两个城市之间最多只能有一条直接的贸易路径. 对于两个建立路线的方案, 如果存在一个城市对, 在两个方案中是否建立路线不一样, 那么这两个方案就是不同的, 否则就是相同的. 现在你需要求出一共有多少不同的方案.  好了, 这就

CF438E The Child and Binary Tree(生成函数+多项式开根+多项式求逆)

传送门 可以……这很多项式开根模板……而且也完全不知道大佬们怎么把这题的式子推出来的…… 首先,这题需要多项式开根和多项式求逆.多项式求逆看这里->这里,这里讲一讲多项式开根 多项式开方:已知多项式$A$,求多项式$B$满足$A^2\equiv B\pmod{x^n}$(和多项式求逆一样这里需要取模,否则$A$可能会有无数项) 假设我们已经求出$A'^2\equiv B\pmod{x^n}$,考虑如何计算出$A^2\equiv B\pmod{x^{2n}}$ 首先肯定存在$A^2\equiv B

Luogu5162 WD与积木(生成函数+多项式求逆)

显然的做法是求出斯特林数,但没有什么优化空间. 考虑一种暴力dp,即设f[i]为i块积木的所有方案层数之和,g[i]为i块积木的方案数.转移时枚举第一层是哪些积木,于是有f[i]=g[i]+ΣC(i,j)·f[i-j],g[i]=ΣC(i,j)·g[i-j] (j=1~i). 考虑优化 .我们发现这个转移非常像卷积.写成卷积形式,有f[i]=g[i]+Σi!·Σf[i-j]/j!/(i-j)!,g[i]=i!·Σg[i-j]/j!/(i-j)!.直接分治NTT即可. 诶是不是强行多了个log?考