多项式中步
因为快要WC了所以学一下多项式全家桶,不过国赛大概率是不会考这么难的
因为比初步难所以叫多项式中步
然而好像并不会有多项式高步
基础概念与前置知识
基础概念
只是介绍一下符号和概念
假设\(f(x)\)是一个多项式
\([x^i]f(x)\)表示\(f(x)\)的第i项(也就是\(x\)的系数为\(i\)的那一项)
\(f(x)\mod x^n\)相当于是将次数大于等于n的项移除
多项式除法
对于两个多项式,存在唯一的多项式\(Q(x),R(x)\)
可以类比初中的除法
多项式求导
前置知识求导
我博客里曾经有过,但是它咕了
由简单的求导公式和导数运算律
我们可以知道对于一个多项式
积分是求导的逆运算
对于一个导数
全家桶
开个一亿的桶
--zwj1
多项式求逆
只会倍增法
求\(f^{-1}(x)\mod x^n\)
从小往大推
递归边界就是最后等于常数项的逆元
假设已经知道了\(\mod x^{\lceil\frac{n}{2}\rceil}\)的逆元\(g(x)\)
然后递推出\(\mod x^{n}\)的逆元\(h(x)\)(这样记只是为了不写上标)
因为右边的值为0,所以此时两边平方之后会变成\(\pmod{x^{n}}\)
两边同除\(f(x)\)
提出一个\(g(x)\)
递归就完了
虽然做了很多次NTT,但是时间复杂度是\(n\log n\)的
多项式除法
咕咕咕
多项式牛顿迭代
求\(g(f(x))\equiv0\pmod{x^n}\)
假设已经得到了\(\mod \lceil\frac{n}{2}\rceil\)的答案\(f_0(x)\)
将这个函数在\(f_0(x)\)处泰勒展开
易知
\(f(x)-f_0(x)\)的后\(\lceil\frac{n}{2}\rceil\)为\(0\),所以二次及以上的系数全为\(0\)
那后面就都没了
大概是因为这个式子长得很像牛顿迭代所以叫他多项式牛顿迭代
具体应用见多项式\(exp\)和多项式开方
多项式ln(多项式对数函数)
求\(\ln f(x)\pmod{x^n}\)
设所求为\(g(x)\)
对两边求导
求个逆就完了
因为多项式求逆是\(O(nlogn)\)的,所以它也是\(O(nlogn)\)的
多项式exp(多项式指数函数)
用多项式牛顿迭代
求\(f(x)\equiv e^{a(x)}\pmod{x^n}\)
(这里把\(f(x)\)看做参数,\(a(x)\)看做常数)
带入牛顿迭代的式子
因为多项式\(ln\)是\(O(nlogn)\)的,所以它还是\(O(nlogn)\)的(迫真)
多项式快速幂
低级做法
直接快速幂
时间复杂度\(O(n\log n\log k)\)
先求\(\ln\)再乘\(k\)再求\(exp\)
时间复杂度\(O(n\log n)\)
好像这样可以实现\(O(1)\)快速幂QAQ
多项式开方
就是对于一个\(f(x)\),求一个\(g(x)\)
使得\(g^2(x)=f(x)\pmod{x^n}\)
倍增法
和多项式求逆一样的颓法
边界一样(因为板子保证了\([x^0]a(x)=1\)所以不用写二次剩余)
牛顿迭代法
设
迫真\(n\log n\)法
用多项式快速幂求\(a(x)^{\frac{1}{2}}\)
多项式多点求值
咕
多项式快速插值
咕