LightOJ 1067 - Combinations (Lucas定理)
来源:互联网 发布:串口发送数据 编辑:程序博客网 时间:2024/05/25 05:36
1067 - Combinations
PDF (English)StatisticsForum
Time Limit: 2 second(s)Memory Limit: 32 MB
Given n different objects, you want to take kof them. How many ways to can do it?
For example, say there are 4 items; you want to take 2 ofthem. So, you can do it 6 ways.
Take 1, 2
Take 1, 3
Take 1, 4
Take 2, 3
Take 2, 4
Take 3, 4
Input
Input starts with an integer T (≤ 2000),denoting the number of test cases.
Each test case contains two integers n (1 ≤ n≤ 106), k (0 ≤ k ≤ n).
Output
For each case, output the case number and the desired value.Since the result can be very large, you have to print the result modulo1000003.
Sample Input
Output for Sample Input
3
4 2
5 0
6 4
Case 1: 6
Case 2: 1
Case 3: 15
题意:看样例就能看出题意了,C(n,m)%1000003
思路:1000003是素数,符合Lucas定理
ac代码:
#include<stdio.h>#include<math.h>#include<string.h>#include<stack>#include<set>#include<queue>#include<vector>#include<iostream>#include<algorithm>#define MAXN 1010000#define LL long long#define ll __int64#define INF 0xfffffff#define mem(x) memset(x,0,sizeof(x))#define PI acos(-1)using namespace std;LL gcd(LL a,LL b){return b?gcd(b,a%b):a;}LL lcm(LL a,LL b){return a/gcd(a,b)*b;}LL powmod(LL a,LL b,LL MOD){LL ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}//headLL f[MAXN];void findinit(LL p){f[0]=1;for(int i=1;i<=p;i++)f[i]=(f[i-1]*i)%p;}LL lucas(LL n,LL m,LL p){LL ans=1;while(n&&m){LL a=n%p,b=m%p;if(a<b)return 0;ans=(ans*f[a]*powmod(f[b]*f[a-b]%p,p-2,p))%p;n/=p;m/=p;}return ans;}int main(){ findinit(1000003);LL n,m;int t,cas=0;scanf("%d",&t); while(t--){scanf("%lld%lld",&n,&m);LL ans=lucas(n,m,1000003);printf("Case %d: ",++cas);printf("%lld\n",ans);}return 0;}
0 0
- LightOJ 1067 - Combinations (Lucas定理)
- LightOJ 1067 - Combinations【Lucas定理】
- Lightoj 题目1067 Combinations(lucas)
- 【LightOJ】1067 - Combinations(Lucas & 逆元)
- 【Lifht-oj】-1067-Combinations(Lucas定理&逆元)
- light oj 1067 Combinations (组合数的lucas定理)
- JOJ1595:Combinations(求解大组合数,Lucas定理)
- 数学学习小记(二) 组合数求模:Lucas 定理 LightOJ 1067 + Hdu 3037
- LightOJ1067 Combinations Lucas定理裸题
- LightOj 1067(Lucas)
- lightOJ 1067 - Combinations
- lightoj 1067 - Combinations
- LightOJ 1067 Combinations
- HDU3037(Lucas定理)
- lucas定理(hdu3037,)
- 卢卡斯定理(Lucas)
- lucas (数论定理)
- hdu6129-( Lucas定理)
- 个人进阶之路——自定义控件
- Android-节日短信送祝福(功能篇:2-短信历史记录Fragment的编写)
- 架构之路(五):忘记数据库
- android图片压缩总结
- SQL注入整理
- LightOJ 1067 - Combinations (Lucas定理)
- scikit-learn Tutorials(5)
- 对快速排序的简单分析
- 通讯录项目(代理;通知;数据顺传;逆传)
- Lua学习Day02
- SetWindowPlacement和WINDOWPLACEMENT
- 哈哈哈
- 关于NoSQL,你必须知道的九件事
- 人工智能 有限状态机 的时代过去了