LightOJ 1067 Combinations 组合数取模
来源:互联网 发布:unity3d发布ios教程 编辑:程序博客网 时间:2024/06/06 17:52
题意是求C(n,m) % (1e6 + 3)
我看别人都是用lucas定理解的,我是暴力求解的,打0-n的逆元表,然后直接算
#include<stdio.h>#include<iostream>#include<math.h>#include<cstring>using namespace std;#define LL long longconst 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[n] , mulinv[m]); ans = mul(ans , mulinv[n - m]); printf("Case %d: %lld\n",t,ans); } return 0;}
0 0
- lightoj 1067 - Combinations 组合数取模
- LightOJ 1067 Combinations 组合数取模
- lightoj 1067 - Combinations (组合数、乘法逆元)
- lightOJ 1067 - Combinations
- lightoj 1067 - Combinations
- LightOJ 1067 Combinations
- LightOJ 1067 - Combinations【Lucas定理】
- Combinations LightOJ
- LightOJ 1067 组合数求模
- Lightoj 题目1067 Combinations(lucas)
- LightOJ 1067 - Combinations (Lucas定理)
- 【LightOJ】1067 - Combinations(Lucas & 逆元)
- Combinations 组合
- LightOJ - 1067 Combinations(快速幂+逆元)
- Combinations 组合 思维问题
- Combinations(组合)
- Leetcode:Combinations 组合
- Combinations(组合数学)
- Linux下Redis环境搭建教程&Jedis简单使用教程
- 算法的重要性
- oracle sql面试题
- 适配器模式
- Android学习之手机联系人的查询与添加(ContentProvider知识板块)
- LightOJ 1067 Combinations 组合数取模
- java 打包zip文件
- 算法实例
- HDU 1087 最大上升子序列
- 第九周 项目一 用三种循环语句求一千以内所有偶数和
- 伴随开发人员成长的问题:工程重要,还是算法重要?细节重要,还是架构重要?
- 《编写高质量代码:改善Java程序的151个建议》 建议5
- 算法面试题
- 算法可以用做什么?