给两个下标从$0$开始且长度分别为$n,m$的序列$A,B$和一个常数$C$,求:
答案对$490019$取模。
$\texttt{Data Range:}n,m\leq 10^5,A_i,B_i\leq 10^3,c\leq 490019$
链接
题解
从昨天晚上写到今天晚上,现在终于 AC 了,写篇题解纪念一下。
不得不说这是我做过的最有意思并且最难的多项式题,实在配得上出题人给的 Epic
的称号和 CF 给的 $3400$ 的评分。
考虑到$\texttt{\color{black}y\color{red}wy}$的题解写的有一点点乱,我来写一篇比较好懂的(当然还是要感谢他的啦qwq)
这个题目与古代猪文那个题有点像,因为$490019$是质数,由欧拉定理,我们只需要求
发现这个指数只有$490018$中可能,于是我们可以有一个想法
看这个乘法挺讨厌的,显然可以取个离散对数化乘为加,然后发现不晓得以什么为底,考虑换个思路。
诶,我们发现这个$490018=2\times 491\times 499$是个$\texttt{square-free number}$,好啊。
很明显我们可以$\texttt{CRT}$合并,因为模数互质,我们就可以不用上拓中了。
于是我们可以自然地设一个这样的东西
然后我们发现一个有意思的事情:$491$有$g=2$,$499$有$g=7$,所以我们可以以原根为底啊,这就非常好了。
但是这个$2$没有原根啊,这怎么办?
考虑到这一维取值只有$2$种,可以暴力讨论,剩下两个东西可以离散对数搞搞。
于是我们可以设两个东西:(以下用$\log_{x,y}p$表示$p$在模$x$意义下以$y$为底的离散对数)
和
然后我们就会发现我们的要求的东西就可以写成这个东西:
二元多项式卷积了解一下
我们定义两个矩阵$A,B$的卷积$C$为$C_{i,j}=\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{m}A_{i,j}B_{n-i,m-j}$。
考虑到第一维模数为$2$的特殊性质,我们可以大力讨论简单容斥一下,有
接着就是二维$\texttt{FFT}$的表演啦qwq。
你可以去网上百度这个东西然后发现所谓二维$\texttt{FFT}$其实就是把每一行做一遍$\texttt{FFT}$再每一列也做一遍$\texttt{FFT}$,也可以反过来。
证明由于篇幅原因所限其实是我不会略去。
然后发现某一些数可能是$491$或者$499$的倍数导致没有离散对数,这些数可以暴力。
于是我们就做完了qwq。
然后还有一个附加环节,就是卡常。
能少模的就少模,开个$\texttt{long long}$在一次模掉!
一定记得吸氧!不要用万能头!
然后你就能从 TLE 13 到 AC 了qwq
代码
1 |
|