【BZOJ】2982 combination Lucas

来源:互联网 发布:淘宝福利 编辑:程序博客网 时间:2024/06/13 22:36

题目传送门

这题嘛,就是一道Lucas的裸题……暴力水博客.png

直接上Lucas就好啦。

附上AC代码:

#include <cstdio>using namespace std;const int mod=10007;int jc[mod],inv[mod],t,n,m;inline int lucas(int a,int b){    if (a>b) return 0;    if (b<=mod) return jc[b]*inv[a]%mod*inv[b-a]%mod;    return lucas(a/mod,b/mod)*lucas(a%mod,b%mod)%mod;}int main(void){    jc[0]=jc[1]=inv[0]=inv[1]=1;    for (int i=2; i<mod; ++i) jc[i]=jc[i-1]*i%mod,inv[i]=(mod-mod/i)*inv[mod%i]%mod;    for (int i=2; i<mod; ++i) inv[i]=inv[i-1]*inv[i]%mod;    for (scanf("%d",&t); t; --t) scanf("%d%d",&n,&m),printf("%d\n",lucas(m,n));    return 0;}
原创粉丝点击