G27 求组合数 卢卡斯定理
视频链接:https://www.bilibili.com/video/BV1Jd4y127oY/
Luogu P3807 【模板】卢卡斯定理/Lucas 定理
#include <iostream> using namespace std; typedef long long LL; const int N = 100010; LL f[N], g[N]; LL qpow(LL a, int b, int p){ LL res = 1; while(b){ if(b & 1) res=res*a%p; a = a*a%p; b >>= 1; } return res; } void init(int p){ f[0] = g[0] = 1; for(int i=1; i<=p; i++){ f[i] = f[i-1]*i%p; g[i] = g[i-1]*qpow(i,p-2,p)%p; } } LL getC(int n, int m, int p){ return f[n]*g[m]*g[n-m]%p; } int lucas(LL n, LL m, int p){ if(m==0) return 1; return lucas(n/p,m/p,p)*getC(n%p,m%p,p)%p; } int main(){ int q, n, m, p; cin >> q; while(q--){ cin >> n >> m >> p; init(p); printf("%d\n",lucas(n+m,n,p)); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战