博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ2982 combination
阅读量:5319 次
发布时间:2019-06-14

本文共 901 字,大约阅读时间需要 3 分钟。

我就不吐槽这题面确实不怎么和谐了、、

直接求组合数大致是一个nlogn级别的工程、在这里显然是不可接受的、

于是我们用到了lucas定理、

这个定理的内容大致可以被表述为:

C(A,B)与A和B分解为P进制后各对应位数的组合数的乘积对P同余、

我也不会严格证明、、大致可以自己想想、、

 

Code:

#include 
#include
#include
#include
#include
using namespace std;const int p=10007;int a[11],b[11];int n,m,t,ans;int pow(int x,int k){ if (k==0) return 0; if (k==1) return x; int now=pow(x,k/2); now=(now*now)%p; if (k&1) now=now*x%p; return now;}int c(int aa,int bb){ if (bb==0) return 1; if (aa
aa-bb;i--) cur=cur*i%p; for (int i=1;i<=bb;i++) cur=cur*pow(i,p-2)%p; return cur;}int main(){ scanf("%d",&t); while (t--){ scanf("%d%d",&m,&n); int len1=0,len2=0,ans=1; while (m){ a[len1++]=m%p; m/=p; } while (n){ b[len2++]=n%p; n/=p; } for (int i=0;i

  

转载于:https://www.cnblogs.com/JS-Shining/archive/2013/01/13/2858825.html

你可能感兴趣的文章
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
原生JavaScript第六篇
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Centos7.2正常启动关闭CDH5.16.1
查看>>