这题嘛,就是一道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;
}