多项式

多项式乘法

FFT,NTT,MTT不是前置知识吗?随便学一下就好了(虽然我到现在还是不会MTT,exlucas也不会用
FTT总结
NTT总结

泰勒展开

如果一个多项式\(f(x)\)在\(x0\)时存在n阶导(就是可以求导\(n\)次),那么可以换成下面这样的一个式子:
\(\begin{aligned}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{aligned}\)
实在是不想写MathJax了,蒯一波yyb的

反正余项\(\xi\)趋近于无穷小(因为\(n\)趋近于无穷大),然后就可以忽略了.

然后如果\(x0=0\)的时候就可以直接搞了。

最常见的就是\(e^x\),因为这个东西是可以无限求导的.

套到之前的式子里面就是:

\(e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+...\)

牛顿迭代

不会证明,背背公式就好了。
\(B_{t+1}(x)=B_t(x)-\frac{F(B_t(x))}{F'(B_t(x))}\)

多项式求逆

随便推一下就可以了。
就是考虑\(A\)为原来的,\(B\)为逆数组;
这个东西可以套到牛顿迭代的式子里面去,然后就没了。

多项式的其他操作

挖坑待补(一般性都不要用)

生成函数

普通型生成函数(OGF)

给出一个数列\(a_0,a_1,a_2,...\)

它的OGF就是
\[
F(x)=a_0+a_1*x+a_2*x^2+...
\\
=\sum_{i=0}^{\infty}a_i*x^i
\]

指数型生成函数(EGF)

给出一个数列\(a_0,a_1,a_2,...\)

它的EGF就是
\[
F(x)=\sum_{i=0}^{\infty}\frac{a_i}{i!}*x^i
\]

OGF拓展

我们发现如果把斐波那契数列弄成一个生成函数的话,很显然就是:

\(F(x)=0+1*x+1*x^2+2*x^3+3*x^4+...\)

然后我们同时乘一下\(x\)

\(F'(x)=0+1*x^2+1*x^3+2*x^4+...\)

然后裂项一下就是:

\(F(x)-F'(x)=0+1*x+0+1*x^3+1*x^4+2*x^5\)

然后这样子就变成了:

\(x+x^2(0+1*x+1*x^2+...)\)

也就是说:\(F(x)-F'(x)=x+F(x)*x^2\)

发现这是一个好东西:

\(F(x)-x*F(x)=x+F(x)*x^2\)

然后移一下项就是:

\(F(x)*(x^2+x-1)*F(x)=-x\)

发现我们要求的是\(F(x)\),就可以写成:

\(F(x)=\frac{x}{1-x-x^2}\)

这个东西求的话还是线性的,考虑接着化简

最后就是这么一个烂玩意:

\(fib_n = -\frac{1}{\sqrt5}(\frac{1-\sqrt5}{2})^n + \frac{1}{\sqrt5}(\frac{1+\sqrt5}{2})^n\)

OGF和EGF的区别

我们发现EGF的公式多除了一个阶乘,也就意味分子多乘了一个阶乘,那么阶乘在排列组合下的意义是什么?

顺序,所以EGF和OGF的应用也就出来了:

  • OGF表示的是组合意义.
  • EGF用于求排列下的一些东西

引例:

1.现在有A,B两种物品,A中的物品只能够取奇数个,B中的只能取3的倍数个,求取n个有多少种方法(忽略取出的顺序)

考虑讲这两个写出来就是:

\(A(x)=1+3*x+5*x^2+...\)

\(B(x)=0+3*x+6*x^2+...\)

然后把这两个卷起来的第\(n\)项就是答案


2.现在有A,B两种物品,A中的物品只能够取奇数个,B中的只能取3的倍数个,求取n个有多少种方法(考虑取出的顺序)

考虑顺序的话就是EGF,还是像上面一样写出来

\(A(x)=\frac{1}{1!}x+\frac{1}{3!}x^3+\frac{1}{5!}x^5...\)

\(B(x)=1+\frac{1}{2!}x^2+\frac{1}{4!}x^4+...\)

然后我们就可以感觉这两个东西和我们之前有一个很像:

\(e^x=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+...\)

不是吗?

然后考虑\(x\)与\(-x\)的展开和这个东西好像截然相反...

然后搞一下就好了.

所以:

\(A(x)=\frac{e^x-e^{-x}}{2}\)

\(B(x)=\frac{e^x+e^{-x}}{2}\)

然后这两个东西就很简单了.

应用

例题什么的蒯一发yyb的不就好了

字符串配对匹配相关

回文串匹配

BZOJ3160 万径人踪灭 Solution

考虑下面的这样一个回文串的式子:
\(s[x+i]=s[x-i]\),显然\(x\)是回文中心,然后考虑\((x-i)+(x+i)=2x\)这样的式子,不难发现就是一个卷积,然后就很简单了。

考虑只有两种,ab,分别对于这两种字母作为1|0搞一下

按照上面的做法卷起来-回文串的个数就是答案了.

有向图计数

具体观看Solution of DAG

未完待续

多项式&生成函数(~~乱讲~~)的更多相关文章

  1. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅲ

    第三波,走起~~ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅱ 单位根反演 今天打多校时 1002 被卡科技了 ...

  2. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ

    众所周知,tzc 在 2019 年(12 月 31 日)就第一次开始接触多项式相关算法,可到 2021 年(1 月 1 日)才开始写这篇 blog. 感觉自己开了个大坑( 多项式 多项式乘法 好吧这个 ...

  3. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅱ

    因为垃圾电脑太卡了就重开了一个... 前传:多项式Ⅰ u1s1 我预感还会有Ⅲ 多项式基础操作: 例题: 26. CF438E The Child and Binary Tree 感觉这题作为第一题还 ...

  4. 学了两天 react,乱讲一下学习思路,顺便弄了一个脚手架

    之前一直用 vue 做一些小项目,最近接触了一个项目是用 react 做前端,虽然本身是做后端开发的,但是前端还是要了解一点的. 现在的项目基本上都是前后端分离的,后端就先不提了.前端的框架也是层出不 ...

  5. 【算法乱讲】BSGS

    Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 ...

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

    传送门 可以……这很多项式开根模板……而且也完全不知道大佬们怎么把这题的式子推出来的…… 首先,这题需要多项式开根和多项式求逆.多项式求逆看这里->这里,这里讲一讲多项式开根 多项式开方:已知多 ...

  7. Project Euler 101 :Optimum polynomial 最优多项式

    Optimum polynomial If we are presented with the first k terms of a sequence it is impossible to say ...

  8. 洛谷 P6570 - [NOI Online #3 提高组] 优秀子序列(集合幂级数+多项式)

    洛谷题面传送门 首先 \(3^n\) 的做法就不多说了,相信对于会状压 dp+会枚举子集的同学来说不算困难(暴论),因此这篇博客将着重讲解 \(2^nn^2\) 的做法. 首先如果我们把每个 \(a_ ...

  9. 冬令营前的一些计划&记录

    冬令营前的一些计划&记录 计划 yyb发现自己很多以前学过的东西完完全全不记得了,所以在接下来的时间里可能会留下多篇复习向的博客,当然也可能因为觉得没有必要复习而到处乱做题. 现在先大概归类一 ...

随机推荐

  1. EasyUI 分页 简洁代码

    做分页代码,看到网上很多人实现的方法,那是各种调用,各种获取对象.我很不解,因为Easyui已经给我们了分页的具体实现,为什么有些人要画蛇添足呢. 其实真正的分页,在你的代码中,别人可能都没有注意到, ...

  2. PSP(3.30——4.5)以及周记录

    1.PSP 3.30 12:00 13:00 10 50 Account前端 A Y min 13:00 13:20 0 20 站立会议 A Y min 15:15 17:00 20 85 Accou ...

  3. lambda表达式和表达式树(深入理解c#)

    1.Lambda形式 1). Lambda表达式最冗长的形式: (显式类型的参数列表)=>{语句} 2). 大多数时候,都可以用一个表达式来表示主体,该表达式的值是Lambda的结果,在这些情况 ...

  4. 762. Prime Number of Set Bits in Binary Representation

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  5. 如何将字符串转化为Jsoup的Document 对象

    有些时候在java操作解析html元素的时候比较繁琐,今天螃蟹就介绍一种可将html转换为document对象的方法——jsoup jsoup为我们解析html提供了比较全的API接口,我们通过将ht ...

  6. AttributeError: type object 'testClass' has no attribute 'testMothod'

    点击"Unittest for test_post_API.testClass"按钮,点击”Edit configuration...“,弹出对话框Run/Debug config ...

  7. C++STL 函数对象和谓词

    函数对象:重载函数调用操作符的类,其对象常称为函数对象. 函数对象属于类对象,能突破函数概念,保持类的状态 谓词: 一元函数对象:函数参数1个: 二元函数对象:函数参数2个: 一元谓词 函数参数1个, ...

  8. VBA编程中的 sheet1 与 sheets(1)的区别

    [自己理解]sheet1是一个专有名词,不是任何对象的属性,只能单独使用,特指代码所在工作簿的那个sheet1(和顺序无关,是固定的一个表,sheets(1)则和顺序有关). 参考资料: 1.代码中一 ...

  9. vue中的前置守卫

    前置守卫是为了验证用户信息真实性,一些内容只能在用户登陆以后才能进行查看,例如个人中心,我的购物车,等个人页面,非隐私页面 用router.beforeEach进行验证,这个方法必须写在router实 ...

  10. Linux创建一个周期任务来定期删除过期的文件

    一:需求 在开发中存在这样的情况,为了防止文件的误删,不允许开发人员直接删除项目中要用到的文件,而是将它们移动到某个目录,然后由一个周期任务去检测并删除内部过期的文件: 二:检测文件是否是过期文件 有 ...