Lightoj 题目1067 Combinations(lucas)
来源:互联网 发布:苏州大学本部淘宝地址 编辑:程序博客网 时间:2024/06/10 15:11
C - Combinations
Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluSubmit Status Practice LightOJ 1067
Description
Given n different objects, you want to take k of them. How many ways to can do it?
For example, say there are 4 items; you want to take 2 of them. 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 modulo 1000003.
Sample Input
3
4 2
5 0
6 4
Sample Output
Case 1: 6
Case 2: 1
Case 3: 15
组合数取余
ac代码
Accepted
#include<stdio.h>#include<iostream>#include<algorithm>#include<stdlib.h>#include<map>#include<math.h>#define LL long longusing namespace std;LL fac[1000005];void get_fact(LL p){fac[0]=1;for(int i=1;i<=p;i++)fac[i]=(fac[i-1]*i)%p;}LL qpow(LL a,LL b,LL mod){LL ans=1;while(b){if(b&1)ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;}LL lucas(LL n,LL m,LL mod){LL ans=1;while(n&&m){LL a=n%mod;LL b=m%mod;if(a<b)return 0;ans=(ans*fac[a]*qpow(fac[b]*fac[a-b]%mod,mod-2,mod))%mod;n/=mod;m/=mod;}return ans;}int main(){int t,c=0;scanf("%d",&t);get_fact(1000003);while(t--){LL n,m,p;scanf("%lld%lld",&n,&m);printf("Case %d: %lld\n",++c,lucas(n,m,1000003));}}
0 0
- Lightoj 题目1067 Combinations(lucas)
- LightOJ 1067 - Combinations (Lucas定理)
- 【LightOJ】1067 - Combinations(Lucas & 逆元)
- LightOJ 1067 - Combinations【Lucas定理】
- LightOj 1067(Lucas)
- lightOJ 1067 - Combinations
- lightoj 1067 - Combinations
- LightOJ 1067 Combinations
- 【Lifht-oj】-1067-Combinations(Lucas定理&逆元)
- lightoj 1067 - Combinations 组合数取模
- LightOJ 1067 Combinations 组合数取模
- LightOJ - 1067 Combinations(快速幂+逆元)
- lightoj 1067 - Combinations (组合数、乘法逆元)
- Combinations LightOJ
- LightOJ1067 Combinations[Lucas]
- light oj 1067 Combinations (组合数的lucas定理)
- JOJ1595:Combinations(求解大组合数,Lucas定理)
- 数学学习小记(二) 组合数求模:Lucas 定理 LightOJ 1067 + Hdu 3037
- 翻转英文句子中单词的顺序
- window下安装MPI
- 第九周项目四-广义表算法库
- nRF51822低功耗CPU睡眠软件应用
- Redis学习笔记之(十一)管道与节省空间
- Lightoj 题目1067 Combinations(lucas)
- 第十一周项目2二叉树构造算法的验证
- 线性拟合和线性回归
- 屏幕的适配
- 第十周项目1-建立二叉树算法库
- Oracle如何跳过被锁死的数据
- android中sharedPreferences的用法
- Redis命令总结
- 复选框的全选、取消