BZOJ2982: combination(Lucas定理)
来源:互联网 发布:linq 不重复数据 编辑:程序博客网 时间:2024/05/21 07:14
传送门
题意:
求大组合数在Mod p意义下的值,p为质数。
题解:
显然是裸的Lucas定理题。
线筛一波逆元水掉此题。
#include<bits/stdc++.h>using namespace std;const int Mod=10007;int inv[Mod],fac[Mod];long long n,m;inline int C(int x,int y){ if(x<y)return 0; return 1ll*fac[x]*inv[y]*inv[x-y]%Mod;}inline int lucas(long long n,long long m) { if(n<Mod&&m<Mod)return C(n,m); return 1ll*lucas(n/Mod,m/Mod)*C(n%Mod,m%Mod)%Mod;}int main(){ inv[0]=inv[1]=1;fac[0]=fac[1]=1; for(int i=2;i<Mod;i++)inv[i]=-(Mod/i)*inv[Mod%i]%Mod+Mod; for(int i=2;i<Mod;i++)inv[i]=1ll*inv[i-1]*inv[i]%Mod; for(int i=2;i<Mod;i++)fac[i]=1ll*fac[i-1]*i%Mod; int T;scanf("%d",&T); while(T--) { scanf("%lld%lld",&n,&m); printf("%d\n",lucas(n,m)); }}
阅读全文
0 0
- BZOJ2982: combination(Lucas定理)
- 【bzoj2982】 combination LUCAS定理
- 【bzoj2982】【combination】【Lucas定理】
- 【lucas定理】BZOJ2982 combination
- [BZOJ2982]combination(组合数学lucas定理)
- [bzoj2982]combination(组合数学lucas定理)
- Lucas定理模板【bzoj2982】【combination】
- 组合数学lucas定理 BZOJ2982 combination
- bzoj2982 -- Lucas定理
- bzoj 2982: combination (Lucas定理)
- 2982: combination|lucas定理
- bzoj2982: combination 组合数 卢卡斯定理
- bzoj2982 combination【Lacus定理+线性求逆元】
- 【bzoj2982】combination
- BZOJ2982: combination
- [bzoj2982]combination
- BZOJ2982 combination
- bzoj2982 combination
- 移动平台 Unity3D 应用性能优化
- oracle11g数据库中的json工具
- 测试信息
- Python 错误和异常
- string类的引用计数的写时拷贝分析
- BZOJ2982: combination(Lucas定理)
- [Suzuki85]轮廓跟踪算法论文翻译
- 老蜗牛写采集:获取数据(正则篇)
- jdk1.7环境java代码访问https(connection reset)
- 如何判定对象已死可以回收内存
- book1 unit5 after-class reading 1 : Animal Play
- windows下超简单安装Anaconda配置环境,并在pycharm中运行安装TensorFlow
- 【笔记篇】莫队算法(二)
- sparksteaming---实时流计算Spark Streaming原理介绍