大庆网站建设,php 社交网站模板源码,wordpress图片变小了,沥林行业网站建设给定 n 组询问#xff0c;每组询问给定两个整数 a#xff0c;b #xff0c;请你输出 Cbamod(1097) 的值。
输入格式 第一行包含整数 n 。
接下来 n 行#xff0c;每行包含一组 a 和 b 。
输出格式 共 n 行#xff0c;每行输出一个询问的解。
数据范围 1≤n≤10000 , 1…给定 n 组询问每组询问给定两个整数 ab 请你输出 Cbamod(1097) 的值。
输入格式 第一行包含整数 n 。
接下来 n 行每行包含一组 a 和 b 。
输出格式 共 n 行每行输出一个询问的解。
数据范围 1≤n≤10000 , 1≤b≤a≤105 输入样例 3 3 1 5 3 2 2 输出样例 3 10 1 除的时候可能是小数可以变成逆元 除以就等于乘以逆元。
#include iostream
#include algorithmtypedef long long LL;
using namespace std;const int N 100010, mod 1e9 7;
int fact[N], infact[N]; //fact[i] 存储 i!的值。//infact[i] 存储 i!的逆元的值。int qmi(int a, int k, int p)
{int res 1;while(k){if(k 1) res (LL)res * a % p;a (LL)a * a % p;k 1;}return res;
}int main ()
{fact[0] infact[0] 1;for(int i 1; i N; i ){fact[i] (LL)fact[i - 1] * i % mod;infact[i] (LL)infact[i - 1] * qmi(i, mod - 2, mod) % mod;}int n;scanf(%d, n);while(n -- ){int a, b;scanf(%d%d, a, b);printf(%d\n, (LL)fact[a] * infact[b] % mod * infact[a - b] % mod);}return 0;
}