「解题报告」P5431 乘法逆元 2
题目链接:【模板】乘法逆元 2
这道题不建议叫乘法逆元,可以直接当一道数学题去处理,我们观察这个式子
这道题卡时间,用快读快写可以过。
点击查看代码
#define M 5000010
using namespace std;
int n, p, k, ans, base = 1;
int f[M], g[M], inv[M], a[M];
inline int read() {
int f(1) , x(0);
char ch = getchar();
for (; !isdigit(ch); ch = getchar()) if (ch == '-') f = -1;
for (; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + (ch ^ 48);
return f * x;
}
inline void write(int x) {
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
int QuickPow(int a, int b) {
int res = 1;
while (b) {
if (b & 1) res = res * a % p;
a = a * a % p;
b >>= 1;
}
return res;
}
int main() {
n = read(), p = read(), k = read();
for (int i = 1; i <= n; i++)
a[i] = read();
g[0] = f[n+1] = 1;
for (int i = 1; i <= n; i++)
g[i] = g[i-1] * a[i] % p;
for (int i = n; i >= 1; i--)
f[i] = f[i+1] * a[i] % p;
for (int i = 1; i <= n; i++) {
base = base * k % p;
ans = (ans + base * g[i-1] % p * f[i+1] % p) % p;
}
int w = QuickPow(g[n], p - 2);
write((ans * w) % p);
return 0;
}
作者:Aewrxuk
出处:https://www.cnblogs.com/Aewrxuk/p/17644027.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)