O(n)递推求逆元
来源:互联网 发布:淘宝订单怎么打印 编辑:程序博客网 时间:2024/05/21 18:30
O(n)递推求逆元
第一种:
适用于需要一定区域内的逆元的情况
代码:
void getinv(int n){ inv[1]=1; inv[0]=1; for(int i=2;i<n;i++) inv[i]=(1LL*(mod-mod/i)*inv[mod%i])%mod; }
证明:
a*x+b=mod
a*x%mod=(-b)%mod
-a%mod=inv[x]*b%mod
inv[x]=(-a)*inv[b]%mod;
第二种:
适用于求组合数等需要阶乘的逆元的情况:
先求出阶乘,再求出n!的逆元,倒推出 i! 的逆元。
(n要小于mod否则fac为0)
代码:
void init(){ fac[0]=1; inv[0]=1; for(int i=1;i<=n;i++) fac[i]=(1LL*fac[i-1]*i)%mod; inv[n]=modpow(fac[n],mod-2); for(int i=n-1;i>=1;i--) inv[i]=(1LL*inv[i+1]*(i+1))%mod;}
证明:
1/i!=1/(i+1)! * (i+1)
阅读全文
0 0
- O(n)递推求逆元
- 递推求乘法逆元
- 逆元 递推求逆元
- 递推求逆元,求组合数
- O(N)求1~N逆元
- BZOJ2186 [Sdoi2008]沙拉公主的困惑 数论:递推求逆元
- UVALive 7040 Color (容斥定理 + 递推求逆元 + 组合数 + 快速幂)
- 【数论】 【逆元】 【O(n)求逆元】
- 还是逆元之O(n)阶乘逆元。。。
- O(N) 求1~N的逆元
- O(N)求1-N的逆元
- O(N) 求 1~N 逆元 模板及证明
- 【数论】【逆元】【O(n)时间求出1~n对模MOD的逆元】
- 【数论】【逆元】【O(n)时间求出1~n对模MOD的逆元】
- 递推求阶乘
- HDU4035 递推求期望
- 递推求组合数
- O(n)时间求出1~n对模MOD的逆元
- php中的switch判断妙用
- vue input hidden 如何实现
- Xcode执行项目整理——main方法简单笔记
- X^2 Mod P------暴力
- 第七周项目3---负数把正数赶出队列
- O(n)递推求逆元
- Java WEB中标签开发
- IntelliJ-idea新建Java项目并部署tomcat
- 任学堂说计算机:IT与计算机
- lintcode--区间求和 I
- ES笔记
- wireshark找不到接口的处理方法
- retrofit2.0使用拦截器Interceptor统一打印请求与响应的json
- Linux下搭建zookeeper集群