巢湖网站建设,兰州网站优化公司,外贸网站搭建公司,用php做的网站给定 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 使用快速幂求解a用费马小定理求解后面的逆元
代码
#include iostreamusing namespace std;typedef long long ll;const int N 1e5 10, mod 1e9 7;ll n, a, b;
ll fact[N], ifact[N];ll qmi(ll a, ll b) {ll res 1;while (b) {if (b 1) res res * a % mod;a a * a % mod;b 1;}return res;
}void init() {fact[0] 1;ifact[0] 1;for (int i 1; i N; i ) {fact[i] fact[i - 1] * i % mod;ifact[i] ifact[i - 1] * qmi(i, mod - 2) % mod;}
}int main() {init();cin n;while (n -- ) {cin a b;cout (fact[a] * ifact[b]) % mod * ifact[a - b] % mod endl;}
}