Problem
- 求 ,是质数
- 由于是任意模数,所以需要MTT。
- 一种
暴力的方法是多项式加分块,设定一个块的大小,以及这样一个多项式:
- 那么答案就是
- 直接利用多项式多点求值可以搞到的复杂度。
- 直接求系数实在是太慢了,我们可以考虑另一种多项式的优秀处理方法——点值。
- 设,那么我们最后就是要求所有的
- 利用倍增的思路,如果我们可以做到从到的乘二的转化,以及加一的转化,那么就可以倍增求出最后的个点值了
乘二
- 对于,首先需要变成.
- 然后再在对应位置上乘上,就可以变成
- 考虑第一步需要得到,再综合第二步,都相当于是从变成
- 系统化得来说,假设,那么相当于我们已知,要求。
- 运用拉格朗日插值:
- 由于,所以不会出现的情况。后面可以直接FFT,前面的只需要用双指针扫一遍即可。
加一
- 从到直接暴力即可。