1 条题解
-
0118爱好者 (mengqingyu) LV 10 @ 2024-7-27 9:52:29
#include <bits/stdc++.h> #define int long long using namespace std; const int mod = 10007; int n,m,t; int po(int a,int b,int p) { int mul = 1; while(b) { if(b & 1) mul = mul * a % p; a = a * a % p; b >>= 1; } return mul; } int C(int n,int m,int p) { int x = 1,y = 1; for(int i = 1;i <= m;i++) { x = x * (n - i + 1) % p; y = y * i % p; } return x * po(y,p - 2,p) % p; } int lucas(int n,int m,int p) { if(!m) return 1; return C(n % p,m % p,p) * lucas(n / p,m / p,p) % p; } signed main() { scanf("%lld",&t); while(t--) { scanf("%lld%lld",&n,&m); printf("%lld\n",lucas(n,m,mod) % mod); } return 0; }
- 1
信息
- ID
- 529
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 3
- 上传者