各种多项式操作的 n^2 递推
zszz,使用 NTT 可以在 \(\mathcal O(n\log n)\) 的时间内求出两个多项式的卷积、以及一个多项式的 \(\text{inv},\ln,\exp,\text{sqrt}\) 等,但是如果模数不是 NTT 模数(譬如 \(10^9+7\))并且复杂度允许 \(\mathcal O(n^2)\) 实现上述操作,那么再使用 \(n\log n\) 的 NTT 优化版多项式全家桶就不合适了,因此我们也要懂得如何暴力 \(n^2\) 递推。
多项式乘法
这个就过于弱智了吧……直接枚举对应位然后往它们的和的地方贡献即可,这个幼儿园就学过了(
多项式求逆
假设 \(B\) 为 \(A\) 的逆元,那么显然有 \(AB=1\),即
\]
即
\]
\]
边界 \(B_0=\dfrac{1}{A_0}\)
多项式 \(\ln\)
假设 \(B(x)=\ln A(x)\),那么注意到在我们 NTT 逆元时,我们采用了求导,再积分回去的做法,即 \(B’(x)=\dfrac{A’(x)}{A(x)}\),因此我们只需对 \(A(x)\) 求一遍逆,再积分回去即可,不过事实上还有更简洁(常数更小)的推法,具体来说
\]
\]
\]
\]
\]
一般在取 \(\ln\) 时默认 \(A_0=1\),因此一般来说上式也可以写作
\]
多项式 \(\exp\)
根据 \(\exp\) 的性质,\(\exp’(A(x))=\exp(A(x))A(x)\),因此假设 \(B(x)=\exp(A(x))\),那么显然有
\]
\]
\]
\]
多项式 \(\exp_{\le k}\)
对于多项式 \(A(x)\),定义其 \(\exp_{\le k}\) 为
\]
因此 \(\exp(A(x))\) 也可视为 \(\exp_{\le\infty}\)
那么怎么暴力求这东西呢?我们假设 \(B(x)=\sum\limits_{i=0}^k\dfrac{A^i(x)}{i!}\),那么
\]
\]
\]
我们惊奇地发现 \(\sum\limits_{i=0}^{k-1}\dfrac{A^i(x)}{i!}=B(x)-\dfrac{A^k(x)}{k!}\)
于是
\]
我们假设 \(C(x)=\dfrac{A^k(x)}{k!}\),那么
\]
\]
\]
边界条件 \(B_0=\sum\limits_{i=0}^k\dfrac{A_0^i}{i!}\)
最新文章
- oracle 错误代码大全
- js变量及其作用域
- Using dojo/query(翻译)
- s2sh框架搭建(辅助工具:MyEclipse)及解决一些遇到的问题
- GitHub 上一份很受欢迎的前端代码优化指南-强烈推荐收藏
- 秒杀9种排序算法(JavaScript版)
- 【CentOs】开机启动与防火墙
- CF A. Xenia and Divisors
- C# Devexpress学习--LabelControl
- 精通Django或Rails框架
- [原创]linux简单之美(二)
- 设计模式:Prototype 原型模式 - 同学你抄过别人的作业么?-clone()方法的使用
- 【Java学习笔记之二十五】初步认知Java内部类
- Hdoj 1517.A Multiplication Game 题解
- 从零开始一起学习SLAM | 点云到网格的进化
- 导出为word文档
- Apktool(1)——Apktool的安装
- JAVA实现用户的权限管理
- Linux 下C编程(一)文件基础
- patrol_data_unit_edit.jsp
热门文章
- (翻译)领域驱动设计实现-Implementing Domain Driven Design
- k8s 关于Job与Cronjob
- UltraSoft - DDL Killer - Alpha 项目展示
- luogu P4243 [JSOI2009]等差数列 题解
- sort方法和自定义比较器的写法
- MySQL实战优化之InnoDB整体架构
- 最近公共祖先 牛客网 程序员面试金典 C++ Python
- Codeforces Round #741 (Div. 2)部分题题解
- Appium 介绍与环境搭建
- Python小练习之验证“哥德巴赫猜想”