HDU-2017"百度之星"程序设计大赛-初赛(B)-1001-Chess
程序员文章站
2022-07-03 20:04:53
...
描述
题解
水题,当
代码
#include <iostream>
using namespace std;
typedef long long ll;
const ll MOD = 1e9 + 7; // 必须为质数才管用
const ll MAXN = 1e5 + 3;
int N, M;
ll fac[MAXN]; // 阶乘
ll inv[MAXN]; // 阶乘的逆元
ll QPow(ll x, ll n)
{
ll ret = 1;
ll tmp = x % MOD;
while (n)
{
if (n & 1)
{
ret = (ret * tmp) % MOD;
}
tmp = tmp * tmp % MOD;
n >>= 1;
}
return ret;
}
void init()
{
fac[0] = 1;
for (int i = 1; i < MAXN; i++)
{
fac[i] = fac[i - 1] * i % MOD;
}
inv[MAXN - 1] = QPow(fac[MAXN - 1], MOD - 2);
for (int i = MAXN - 2; i >= 0; i--)
{
inv[i] = inv[i + 1] * (i + 1) % MOD;
}
}
ll C(ll a, ll b)
{
if (b > a)
{
return 0;
}
if (b == 0)
{
return 1;
}
return fac[a] * inv[b] % MOD * inv[a - b] % MOD;
}
int main(int argc, const char * argv[])
{
init();
int T;
cin >> T;
while (T--)
{
cin >> N >> M;
if (N == M)
{
cout << 1 << '\n';
}
else
{
cout << C(max(N, M), max(N, M) - min(N, M)) << '\n';
}
}
return 0;
}
推荐阅读
-
HDU-2017"百度之星"程序设计大赛-初赛(B)-1001-Chess
-
2018 “百度之星”程序设计大赛 - 初赛(B)-1001 degree
-
HDU-2017"百度之星"程序设计大赛-初赛(B)-1002-Factory
-
1001 Discount (数学 / 优惠率) (2020年百度之星*程序设计大赛-初赛三)
-
1003. Covid (思维 / 小根堆)(2020年百度之星*程序设计大赛-初赛二)
-
2018 “百度之星”程序设计大赛 - 初赛(A)1002-度度熊学队列
-
2018百度之星程序设计大赛初赛B——1002hex
-
2020 年百度之星·程序设计大赛 - 初赛三 P1005 Chess (HDU 6787) dp
-
2020 年百度之星·程序设计大赛 - 初赛三 P1005 Chess (HDU 6787) dp