LightOJ 1067 Combinations 组合数取模
2014-10-23 12:32
513 查看
题意是求C(n,m) % (1e6 + 3)
我看别人都是用lucas定理解的,我是暴力求解的,打0-n的逆元表,然后直接算
我看别人都是用lucas定理解的,我是暴力求解的,打0-n的逆元表,然后直接算
#include<stdio.h> #include<iostream> #include<math.h> #include<cstring> using namespace std; #define LL long long const LL MOD = 1000003; const LL MAXN = 1000000; LL mul(LL a,LL b){return (a * b) % MOD;} LL add(LL a,LL b){return (a + b) % MOD;} LL inv[MAXN + 1]; LL mulinv[MAXN + 1]; LL muln[MAXN + 1]; void pre(){ inv[0] = 1; inv[1] = 1; for(int i = 2; i <= MAXN; i++) inv[i] = ((MOD - MOD / i) * inv[MOD % i]) % MOD; } void pre2(){ mulinv[0] = 1; muln[0] = 1; for(int i = 1; i <= MAXN; i++){ mulinv[i] = mul(mulinv[i - 1] , inv[i]); muln[i] = mul(muln[i - 1] , i); } } int main(){ int tt; scanf("%d",&tt); LL ans; LL n,m; pre(); pre2(); for(int t=1;t<=tt;t++){ scanf("%lld%lld",&n,&m); ans = mul(muln , mulinv[m]); ans = mul(ans , mulinv[n - m]); printf("Case %d: %lld\n",t,ans); } return 0; }
相关文章推荐
- lightoj 1067 - Combinations (组合数、乘法逆元)
- lightoj 1067 - Combinations 组合数取模
- Lightoj 题目1067 Combinations(lucas)
- LightOJ - 1067 Combinations(快速幂+逆元)
- lightOJ 1067 - Combinations
- 1067 - Combinations---LightOj(Lucas求组合数)
- 【LightOJ】1067 - Combinations(Lucas & 逆元)
- LightOJ - 1067 数论<100000左右的组合数取模求法《逆元》>
- LightOJ1067 Combinations Lucas定理裸题
- LightOJ 1067 - Combinations【Lucas定理】
- LightOJ 1067 - Combinations (Lucas定理)
- LightOJ 1067 Combinations(费马小定理+逆元)
- LightOJ1067 Combinations[Lucas]
- LightOJ - 1067 Combinations
- lightoj 1067 - Combinations
- LightOJ - 1067 Combinations 大组合数取模(费马小定理与逆元)
- Combinations 组合 思维问题
- Light OJ 1067 Combinations (乘法逆元)
- LeetCode OJ:Letter Combinations of a Phone Number(数字字母组合)
- Lightoj 1067【逆元模板(求C(N,M))】