随笔 - 188  文章 - 0  评论 - 59  阅读 - 7683

(新)乘法逆元+组合数求解

逆元:

四种求解方式

https://www.cnblogs.com/kuangbiaopilihu/p/12921745.html#43-%E5%A6%82%E4%BD%95%E6%B1%82%E4%B9%98%E6%B3%95%E9%80%86%E5%85%83

组合数:

1.递推求解

2.线性求解

复制代码
void init()
{
    fac[0]=ny[0]=1;
for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod;
ny[n]=qpow(fac[n],mod-2,mod);
for(int i=n-1;i>=1;i--)ny[i]=ny[i+1]*(i+1)%mod; 
//阶乘逆元的线性求法,求出一个,剩下的递推就行 }
int C(int n,int m) {return fac[n]*ny[m]%mod*ny[n-m]%mod;}
复制代码
// 因为 1<i<p,所以 p/i 一定小于 p
ny[1] = 1;
for (int i = 2; i < p; ++i) 
{ ny[i]
= (long long)(p - p / i) * ny[p % i] % p; // 注意最后的模 p 不要忘记 }
//也可直接这么线性推出

 

posted on   HZOI-曹蓉  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示