VEXOBEN
Vexoben
Jan 31, 2019
It takes1minutes to read this article.

在一次比赛中因为不会线性处理一段区间的逆元被卡了52分.这里记下这个问题的解法.

(刷新以获取数学公式)

线性处理的逆元

inv[1] = 1;
for (int i = 2; i <= n; ++i) {
	 inv[i] = -mod / i * inv[mod % i] % mod + mod;
}

线性处理任意区间的逆元

上面一种方法不易扩展到任意区间,我们可以扩展线性处理逆元的另一种方法:

假设我们要处理区间在模意义下的逆元,可以先求出, 那么

计算的时候,先由费马小定理计算出,然后用递推即可.

一道例题

题意

计算

数据范围:, 答案模输出

题解

由数据范围可以想到关键是将和式转化为关于的递推式。

预处理的逆元之后递推即可。