求c(m,n)%a

不知道原理,不过套板子就对了:

#include<bits/stdc++.h>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y)
{if(!b){x=1;y=0;return a;}ll res=exgcd(b,a%b,x,y),t;t=x;x=y;y=t-a/b*y;return res;
}ll p;inline ll power(ll a,ll b,ll mod)
{ll sm;for(sm=1;b;b>>=1,a=a*a%mod)if(b&1)sm=sm*a%mod;return sm;
}ll fac(ll n,ll pi,ll pk)
{if(!n)return 1;ll res=1;for(register ll i=2;i<=pk;++i)if(i%pi)(res*=i)%=pk;res=power(res,n/pk,pk);for(register ll i=2;i<=n%pk;++i)if(i%pi)(res*=i)%=pk;return res*fac(n/pi,pi,pk)%pk;
}inline ll inv(ll n,ll mod)
{ll x,y;exgcd(n,mod,x,y);return (x+=mod)>mod?x-mod:x;
}inline ll CRT(ll b,ll mod){return b*inv(p/mod,mod)%p*(p/mod)%p;}const int MAXN=11;static ll n,m;static ll w[MAXN];inline ll C(ll n,ll m,ll pi,ll pk)
{ll up=fac(n,pi,pk),d1=fac(m,pi,pk),d2=fac(n-m,pi,pk);ll k=0;for(register ll i=n;i;i/=pi)k+=i/pi;for(register ll i=m;i;i/=pi)k-=i/pi;for(register ll i=n-m;i;i/=pi)k-=i/pi;return up*inv(d1,pk)%pk*inv(d2,pk)%pk*power(pi,k,pk)%pk;
}inline ll exlucus(ll n,ll m)
{ll res=0,tmp=p,pk;static int lim=sqrt(p)+5;for(register int i=2;i<=lim;++i)if(tmp%i==0){pk=1;while(tmp%i==0)pk*=i,tmp/=i;(res+=CRT(C(n,m,i,pk),pk))%=p;}if(tmp>1)(res+=CRT(C(n,m,tmp,tmp),tmp))%=p;return res;
}int main()
{scanf("%lld%lld%d",&n,&m,&p);printf("%d\n",exlucus(n,m));return 0;
}

扩展卢卡斯 (板子)相关推荐

  1. P4720 【模板】扩展卢卡斯定理/exLucas(无讲解,纯记录模板)

    P4720 [模板]扩展卢卡斯定理/exLucas 题意: CnmmodpC_{n}^{m}\bmod pCnm​modp 对于 100% 的数据,1≤m≤n≤1018,2≤p≤106,不保证 p 是 ...

  2. 『数学』--数论--组合数+卢卡斯定理+扩展卢卡斯定理

    组合数: 在N个数中选取M个数,问选的方式有几种? 直接递归暴力简单 #include<cstdio> const int N = 2000 + 5; const int MOD = (i ...

  3. P2183 [国家集训队]礼物(扩展卢卡斯)

    P2183 [国家集训队]礼物 题意: 有n个礼物,分给m个人,分给第i个人的礼物数量是wi,问送礼物的方案数. 题解: 扩展卢卡斯模板题 很容易看出和组合数有关的题目,对于总方案,完美可以将其分解为 ...

  4. 组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理

    [卢卡斯定理] 1.要求:p 是质数,m.n 很大但 p 很小 或者 n.m 不大但大于 p 2.定理内容 其中, 3.推论 当将 n 写成 p 进制:,将 m 写成 p 进制: 时,有: 4.实现 ...

  5. 洛谷P4720 【模板】扩展卢卡斯

    P4720 [模板]扩展卢卡斯 题目背景 这是一道模板题. 题目描述 求 C(n,m)%P 其中 C 为组合数. 输入输出格式 输入格式: 一行三个整数 n,m,p ,含义由题所述. 输出格式: 一行 ...

  6. 洛谷 P4720 【模板】扩展卢卡斯定理/exLucas

    [模板]扩展卢卡斯定理/exLucas 题目背景 这是一道模板题. 题目描述 求 Cnmmodp{\mathrm{C}}_n^m \bmod{p}Cnm​modp 其中 C\mathrm{C}C 为组 ...

  7. 卢卡斯定理扩展卢卡斯

    卢卡斯定理&扩展卢卡斯 Lucas EXlucas 例题 Lucas 卢卡斯定理: ( m n ) = ( m p n p ) ∗ ( m ( m o d p ) n ( m o d p ) ...

  8. 【知识总结】扩展卢卡斯定理(exLucas)

    扩展卢卡斯定理用于求如下式子(其中 p p p不一定是质数): C n m m o d p C_n^m\ mod\ p Cnm​ mod p 我们将这个问题由总体到局部地分为三个层次解决. 层次一:原 ...

  9. 【数学】扩展卢卡斯定理

    Description 求 ( n m ) m o d p \dbinom{n}{m}\bmod p (mn​)modp 其中 p p p 较小且 不保证 p p p 是质数. Method 前置芝士 ...

  10. 扩展卢卡斯定理(Exlucas)

    题目链接 戳我 前置知识 中国剩余定理(crt)或扩展中国剩余定理(excrt) 乘法逆元 组合数的基本运用 扩展欧几里得(exgcd) 说实话Lucas真的和这个没有什么太大的关系,但是Lucas还 ...

最新文章

  1. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
  2. 使用python处理没有被Web用到的图片
  3. 获取预制体_基于弱磁探测技术的轴承滚动体转速检测方法研究
  4. webAPP优化方案总结
  5. 【机器视觉】 dev_disp_text算子
  6. mysql教程为什么很多都用dos_在dos操作mysql基础教程详解
  7. 无意中发现的一份清华大佬的刷题笔记!
  8. html设置数组的方法,js改变原数组的方法有哪些?
  9. Git 分支相关操作
  10. appscan如何进行web端安全性测试_常用的软件测试工具有哪些?
  11. EMNLP杰出论文 | 当注意力遇到RNN,五倍以上训练加速!
  12. c语言编译器 代码优化,C语言 之编译器优化
  13. struct字节计算
  14. 微信小程序实战–集阅读与电影于一体的小程序项目(二)
  15. MyBatis-Spring(五)--MapperScannerConfigurer实现增删改查
  16. 如何对Hive Metastore进行权限控制
  17. 20款免费项目管理系统推荐
  18. 山村屠杀源与公共知识的运用
  19. rancher 启动命令_Rancher 中文文档 —— 快速入门指南
  20. python计算机语言基础_PYTHON之计算机语言基础知识 —— 编程语言的分类

热门文章

  1. 微信小程序:注册微信小程序
  2. Ubuntu 耳机和音响没有声音
  3. Java大鱼吃小鱼游戏,今天你吃了吗?
  4. MySql使用存储过程开发
  5. dhcp failover linux,Centos7 安装 DHCP 4.1 服务器配置及热备
  6. 生产者消费者的几种写法
  7. vue 页脚_前端必懂之Sticky Footer(粘性页脚)
  8. 《华为研发》阅读 - 26 (中试部,品质保证)
  9. CSS3-3D动画制作旋转立方体
  10. 树莓派4b 3.5inch显示屏+远程+FTP+建站