普通多项式转下降幂多项式[学习笔记]
摘要:思路: 前置知识:分治fft(会求下降幂),多项式带余除法 首先能想到的一种做法是,多项式快速求值,然后IFDT一下。但多项式快速求值我都用分治fft……所以也可以用下面这种: 虽然是
O(nlog2n)但常数小,而且好些。注意一下节点开动态空间不要越界,而且要注意一下各种上界 $F(x)=\s
阅读全文
下降幂多项式乘法[学习笔记]
摘要:应用背景 两个下降幂多项式相乘 思路 易得思路:转为普通多项式+乘法+转回来(X 复杂且慢,浓浓的重工程味) 这里有一个好写且快的思路: 直接转为下降幂点值多项式(利用下降幂单项式系数的EGF易转exp)
G(x) $=\sum\limits_{i\ge 0}F[i]\dfrac{x^i}{i!
阅读全文
【BZOJ3513-MUTC2013】idiots[生成函数+容斥]
摘要:题意: 给一些长度的木棍,问你构成三角形的方案数。
n<=105 思路: 计数问题。三角形构成条件中:两短边和大于第三边即可。 可以用生成函数(fft乘法)统计出所有由两条(不同)边构成的长度和及其方案数。 然后乘上比该和小的总个数。 会发现,对于三条边(三元组),如果构成三角形会被算
3次,
阅读全文
SP8372 Triple Sums [生成函数+容斥]
摘要:description 传送门 给
n个数,让你输出所有可能的由三个不同下标的数得到的和,以及构成该和的方案数。 solution 很容易想到
A=cnt0x0+cnt1x1+cnt2x2...卷三次,但要减掉存在至少两个相同下标的方案。 因此构造$B=cnt_0x^0+cnt_1x
阅读全文
[学习笔记]牛顿迭代
摘要:前置知识:泰勒展开,多项式求逆 作用:解自变量为多项式的函数零点(人话:解方程) 已知
G(F(x))≡0(modxn) 老倍增思路了:
G(F0(z))≡0(modx⌈n2⌉) 将$G(F(x
阅读全文
[学习笔记]多项式对数函数(多项式 ln)
摘要:思路 ln套多项式看成复合函数,(因为ln不好处理)复合函数两边同时求导,可得
A′(x)A(x)。然后记得积分回来。 前置知识:多项式求逆,多项式求导、积分 ## code: 点击查看代码 #include<bits/stdc++.h> using namespace std
阅读全文
[学习笔记]多项式开根
摘要:## 思路: 推柿子跟求逆一样,分治(倍增)的思想:不想写了 推出
(F−G)2≡0(modxn) 所以
G=F2+A2F 边界处要用二次剩余的Cipolla算法。 因此只要会多项式求逆、乘法,二次剩余即可。 code #include<bits/std
阅读全文
[学习笔记]多项式求逆
摘要:题意:如其名…… 思路: 多项式的关键在于:用模的次数降次。 它的复杂度跟模数的次幂有关。 所以可以考虑对模数分治。参考 若多项式
F只有一项,直接求常数项的逆元(这也是判别多想式是否存在逆元的条件)。 设已知 $F(x)H(x)\equiv1\pmod{x^{\left\lceil\frac{n
阅读全文
【学习笔记】多项式复合函数
摘要:## 题意: 给多项式
F(x)和
G(x),求
n次多项式
H(x),满足
H(x)=F(G(x))(mod xn+1)。 luogu传送门 思路: 题意具体可以把多项式
G当作自变量,每次次幂后,乘
F的系数。 想要暴力解决问题,试试分块。 令$L= \left\lcei
阅读全文
素数路径(Prime Distance On Tree )
摘要:题意 边长为1,求长度为素数的路径数。 思路 路径计数:点分治+fft 按深度为下标,次数为值卷起来。 结果会吧两端相同的路径算一次,把两端不同的路径算两次。 因此枚举每个点吧对应深度下标减一。 当然这是那种需要容斥的点分治。 code 点击查看代码 #include<bits/stdc++.h>
阅读全文
5651 [51nod1348]乘积之和
摘要:## 题意: 给长度为
n的数列
ai,
q个询问每次给
k,问不同方案
k个数乘起来乘积的和。(mod=1e5+4) ## 思路: 从乘起来的和切入容易想到ntt吧。问题是怎么卷。 ntt,ftt只能解决两个多项式相卷的问题。 因此用分治(二分),可解决问题。 分治是递归的,会存在状态
阅读全文
九连环
摘要:题面 即求
⌊2i+13⌋ 具体证明可以康luogu题解区。 发现需要高精度,而且不能暴力
n2高精度。因为二进制位数是
105级别,所以十进制至少是
104级别。 fft当然可以的,多项式除3也不是很难想。 这里学的是
阅读全文