[关闭]
@yang12138 2018-06-26T01:22:17.000000Z 字数 3354 阅读 1380

类欧几里得算法

未分类


给定,求


输出结果对取模.

特殊的,这里定义.

解析:

考虑计算全部满足有序二元组.
定义

在这里断定可以把式子等价转换成的情况,下面给出证明:

显然把计算转换成计算了下面只讨论的情况.

特殊处理的情况:

时:

特殊处理的情况:

时:


在这里单独处理一下:

替换原式得:

这里引用一个结论:
是一个与相关的次多项式,也就是:


是待定系数,可以用高斯消元法求解该系数(还可以用拉格朗日插值法,伯努利数等方法求解).
上式前部分可以直接求解,接下来只考虑后半部分式子.
使用该结论,上式后部分可以转换成:

这里就把计算转换成了计算.
这里考虑有可能退化成负数,所以需要在函数体里面特判的情况,此时返回值全部是.
可以通过上述式子看出在全部计算过程的和不会超过,所以只计算的情况是足够的.
该递归算法的递归层数和欧几里得算法的递归层数是一样的,即是层,递归计算每层需要的时间,所以总时间复杂度是.

原题:,链接:https://loj.ac/problem/138
参考代码:https://loj.ac/submission/125368

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注