P5591 小猪佩奇学数学题解
怎么拖到现在才开始写题解啊。
我不会啊。这咋做啊。
首先就是整除并不好做。我们因此考虑使用
考虑左侧的
这个东西很像二项式定理,因此我们朝着这个方向去凑。考虑把
组合意义合并一下两个组合数:
提出一个
做变量代换
显然
太棒了。但是考虑右侧的
怎么处理。
并不好处理啊!
我们如果把
我们不妨假设我们能算出这个式子
其中的一种可能就是把
我们希望通过若干项
也就是说,我们希望构造一组
继续观察一下。
请注意最后这个式子等于
让这个两个式子相等,有一个简单的想法就是令
对于相同的
此处我们要凑出来的向量就是第
由于两个向量都是
一个简单的想法就是随便取
但是,这并没有用啊!复杂度并没有更优啊。
我们不妨继续观察。
因此,我们可以想到用另外一个周期为
那么,有什么东西的
也就是说,
而
因此我们就选用这
此时问题变成了,我们有
但是,如果我们每次都要解出来一个线性方程组,
一个简单的想法是用我们这组基凑出标准正交基的每个向量,也就是仅有一个维度是
不妨从最简单的开始。
不妨另本原单位根为
观察发现
这其实就是单位根反演的内容。
证明就是带入等比数列求和公式算一下,第
另外,我们发现,对于我们选取的第
因此我们就可以构造出
的解。就是
这样,我们就只需要凑出来向量的每个维度,把系数加起来即可。
但是,暴力计算系数的复杂度是
继续观察,由于这个向量第
我们希望快速计算这个。
我们把
交换求和号。
请注意,现在右侧成了等比数列求和。这里不妨先假设
和
我们再次运用等比数列求和公式。
此时已经可以算了。直接快速幂计算即可。注意前面有一个
对于对
参考代码。