博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AcWing - 求组合数 II(预处理&逆元)
阅读量:1999 次
发布时间:2019-04-28

本文共 1081 字,大约阅读时间需要 3 分钟。

题目链接:

时/空限制:1s / 64MB

题目描述

给定n组询问,每组询问给定两个整数a,b,请你输出C_{a}^{b}\ mod\ (10^9+7)的值。

输入格式

第一行包含整数n。

接下来n行,每行包含一组a和b。

输出格式

共n行,每行输出一个询问的解。

数据范围

1≤n≤10000,

1≤b≤a≤10^5

输入样例

3

3 1
5 3
2 2

输出样例

3

10
1

解题思路

题意:求出C_{a}^{b}\ mod\ (10^9+7)的值。

思路:范围小的话可以通过递推求出,否则就要先预处理。首先预处理出所有阶乘取模的余数fact[N],以及所有阶乘取模的逆元infact[N],如果取模的数是质数,可以用费马小定理求逆元。

C_{a}^{b}=\frac{a!}{b!*(a-b)!},我们可以令fact[i]=i!\ mod\ 10^9+7infact[i]=(i!)^{-1}\ mod\ 10^9+7,则C_a^b=fact[a] * infact[b] * infact[a - b]

Accepted Code:

/*  * @Author: lzyws739307453  * @Language: C++  */#include 
using namespace std;const int MAXN = 1e5, MAXM = 1e5 + 5;const int MOD = 1e9 + 7;int fact[MAXM], infact[MAXM];int Fast_Power(int a, int b, int p) { int res = 1; while (b) { if (b & 1) res = 1ll * res * a % p; a = 1ll * a * a % p; b >>= 1; } return res;}void Com_Num(int n) { fact[0] = infact[0] = 1; for (int i = 1; i <= n; i++) { fact[i] = 1ll * fact[i - 1] * i % MOD; infact[i] = 1ll * infact[i - 1] * Fast_Power(i, MOD - 2, MOD) % MOD; }}int main() { int t; Com_Num(MAXN); scanf("%d", &t); while (t--) { int a, b; scanf("%d%d", &a, &b); printf("%lld\n", 1ll * fact[a] * infact[b] % MOD * infact[a - b] % MOD); } return 0;}

转载地址:http://eubtf.baihongyu.com/

你可能感兴趣的文章
递归遍历目录
查看>>
字节流复制文本文件【应用】
查看>>
字节流复制图片
查看>>
其他数字摘要算法实现
查看>>
私钥加密私钥解密
查看>>
锁的释放流程-ReentrantLock.unlock
查看>>
Java判断字符串是否为数字(浮点类型也包括)
查看>>
Err:11 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 Packages 404 No
查看>>
ubuntu opencv-python 安装很慢问题
查看>>
MySQL5.7版本修改了my.ini配置文件后mysql服务无法启动问题
查看>>
【大数据开发】Java基础 -总结21-Hashmap和HashTable的区别
查看>>
Exception in thread “main“ java.sql.SQLException错误之一: Column Index out of range, 0 < 1.
查看>>
C3p0连接池连接mysql出现: com.mchange.v2.resourcepool.BasicResourcePool
查看>>
Azkaban体系结构
查看>>
机器学习之重头戏-特征预处理
查看>>
synchronized底层实现及锁的升级、降级
查看>>
PermGen space-永久区内存溢出
查看>>
Maven继承和聚合
查看>>
使用tk.mapper mybatis 插件注意点时对于实体类中某字段不是表中字段,处理方式
查看>>
Sharding-JDBC的SQL引擎(Druid)处理的支持情况总结
查看>>