886. 求组合数 II

// 886. 求组合数 II.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//


/*
https://www.acwing.com/problem/content/888/
给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(109+7) 的值。

输入格式
第一行包含整数 n。

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

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

数据范围
1≤n≤10000,
1≤b≤a≤105
输入样例:
3
3 1
5 3
2 2
输出样例:
3
10
1
*/



#include <iostream>


using namespace std;

const int N = 100010;
const int M = 1e9 + 7;

long long fact[N];
long long infact[N];
int n;


long long qmi(long long a, long long b, long long MOD) {
	long long ret = 1;
	while (b != 0) {
		if (b & 1) {
			ret *= a;
			ret %= MOD;
		}
		b >>= 1;
		a *= a; a %= MOD;
	}

	return ret;
}



void init() {
	fact[0] = 1;
	infact[0] = 1;

	for (int i = 1; i < N; i++) {
		fact[i] = fact[i - 1] * i % M;
		infact[i] = infact[i - 1] * qmi(i, M - 2, M) % M;
	}


}

int main()
{
	cin >> n;
	init();

	for (int i = 0; i < n; i++) {
		int a, b; cin >> a >> b;
		if (a >= b)
			cout << fact[a] * infact[a - b] % M * infact[b] % M << endl;
	}
 
	return 0;
}
 

posted on   itdef  阅读(5)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
历史上的今天:
2020-12-09 AcWing 1067. 精确覆盖问题 DLX
2020-12-09 我的LeetCode视频题解
2019-12-09 poj 2431 Expedition 贪心 优先队列 题解《挑战程序设计竞赛》
2017-12-09 c++11 初始化列表 bind function 示例

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示