多项式
Aaplloo
天天都想摆
展开
-
快速莫比乌斯反演 (FMT) && 快速莫比乌斯变换 (FMI)
前言学习笔记,写此句时还没学懂,暂时没搞清楚标题这俩到底是啥。话说看着别人的博客学的,似乎之前学的 FWT\mathcal {FWT}FWT 的或卷积和与卷积就是 FMT\mathcal {FMT}FMT,而 FWT\mathcal {FWT}FWT 应该是异或卷积。其次,这里的莫比乌斯和数论的莫比乌斯应该有所不同吧,本质上应该是类莫比乌斯形式的一种容斥式子集枚举。话不多说,走起。快速莫比乌斯反演(FMT)问题引入已知俩函数 F(s),G(s)F(s),G(s)F(s),G(s)求Ans(S)=原创 2020-06-13 16:14:47 · 229 阅读 · 0 评论 -
快速子集卷积
前言老师讲课没怎么听,补学。讲解用于处理形如于dp[x]=dp[y]∗val[z] (y∣z=x 且 y&z=0)dp[x]=dp[y]*val[z]\ (y|z=x\ 且\ y\&z=0)dp[x]=dp[y]∗val[z] (y∣z=x 且 y&z=0)的一类dp朴素做法:枚举 xxx,枚举 xxx 的子集 yyy进行状态转移,时间复杂度为 O(3logn)O(3^{{logn}})O(3logn)。我们原创 2020-06-10 22:17:45 · 233 阅读 · 1 评论 -
[NOI Online3] C.优秀子序列 (FST咕咕咕)
首先,我们可以得到一个简单的3logai3^{log_{ai}}3logai的暴力dp+子集枚举,这样是3183^{18}318的复杂度,1e8左右,2s的时间本来是妥妥地过的,结果CCF机子太烂跑T了。先给出代码吧。Code:inline void Sieve(LL x){ Phi[1] = 1; for (Int i = 2; i <= x; ++ i) { if (! Phi[i]) { Prime[++ Prime[0]] = i; Phi[i] = i -原创 2020-05-29 10:47:37 · 183 阅读 · 0 评论 -
[HAOI2018]染色 (容斥+NTT)
前言又被虐爆了。题目题目易看出是一道容斥相关的问题。题目较为简单,直接讲解思路吧。思路首先我们推一波式子。法一思路来源于湘妹儿。考虑枚举iii为选择iii种颜色的合法方案数设方案数为C(m,i)∗F(n,i)∗G(n−iS,m−i)C(m,i)*F(n,i)*G(n-iS,m-i)C(m,i)∗F(n,i)∗G(n−iS,m−i)F(i,j):iF(i,j):iF(i,j):i个格子中填入jjj中颜色每种颜色SSS个的方案数G(i,m−j):iG(i,m-j):iG(i,m−j):原创 2020-05-17 12:56:06 · 142 阅读 · 0 评论 -
基础多项式操作
文章目录前言多项式操作前置知识NTT导函数定义公式表达常用的求导公式切线几何定义代数定义函数零点迭代相关泰勒展开牛顿迭代方法式子定义一般步骤多项式求逆问题模板题Code:前言下列的多项式操作基于FFT & NTT。多项式操作前置知识NTTvoid NTT(LL *A, LL Type){ for (LL i = 0; i < Limit; ++ i) if...原创 2019-12-21 13:55:54 · 361 阅读 · 0 评论 -
[NTT]任意模数NTT
题目洛谷NTTFFT可以帮助我们快速地将多项式从系数表达变换成点值表达。但由于涉及浮点数运算,我们需要对一些数取模时,不能一边计算一边取模,所以有可能会爆炸。而且我们有时候也会因此丢失精度,导致结果错误。所以,我们就要引入NTT算法。NTT是利用一些特殊的模数,基于数论来进行变换的一种基于FFT的多项式算法。过程中所使用的都是整数,所以不存在这些问题。前备知识阶对于gcd(x,n)...原创 2019-12-19 20:16:40 · 762 阅读 · 0 评论 -
快速傅里叶变换(FFT)
文章目录前言多项式多项式乘法表示一个多项式系数表示法点值表示法复数一些涉及的知识点向量平行四边形定则圆的弧度制虚数单位复数模长 : 从O(0,0)O(0,0)O(0,0)到(a,b)(a, b)(a,b)的距离,即为a2+b2\sqrt {a^2 + b^2}a2+b2幅角 : 假设以逆时针为正方向,从xxx轴正半轴到已知向量的转角的有向角运算法则加法乘法单位根单位根的性质快速傅里叶变换快速傅里...原创 2019-12-17 21:28:44 · 792 阅读 · 0 评论