ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#164908 | #2908. count | LJYljy | 100 | 167ms | 4276kb | C++ | 1.4kb | 2022-11-07 00:22:49 | 2022-11-07 00:22:51 |
answer
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAXN 100010
#define MOD 1000000007
using namespace std;
inline long long read() {
register long long x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-') f = -1;
ch = getchar();
}
while (isdigit(ch)) {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
long long t, n, m;
long long inv[MAXN << 1], invn[MAXN << 1];
inline long long Orz_Zhengzhiyuan(long long a, long long b) {
long long base = 1;
for (; b; b >>= 1) {
if (b & 1) base = base * a % MOD;
a = a * a % MOD;
}
return base;
}
inline void Orz_Chengchunhao() {
inv[0] = 1; invn[0] = 1;
for (long long i = 1; i < (MAXN << 1); i++) {
inv[i] = inv[i - 1] * i % MOD;
invn[i] = Orz_Zhengzhiyuan(inv[i], MOD - 2);
}
}
inline long long Orz_Xuqin(long long x, long long y) {
if (x < y) return 0; ///避免使用Lucas定理的时候取Mod出错
return (inv[x] * (invn[y] * invn[x - y] % MOD)) % MOD;
}
int main() {
Orz_Chengchunhao();
t = read();
for (long long u = 1; u <= t; u++) {
n = read(); m = read();
printf("%lld\n", (((n * m - 1) % MOD) * Orz_Xuqin(n + m - 2, n - 1)) % MOD);
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 20
Accepted
time: 34ms
memory: 4276kb
input:
10 1 1 2000 1997 117 1647 392 452 959 1883 1046 1627 1398 1124 1372 306 1799 1007 111 1765
output:
0 57631948 737963048 807538931 137760374 398194748 77480423 174938019 583393917 445670336
result:
ok 10 lines
Test #2:
score: 20
Accepted
time: 34ms
memory: 4272kb
input:
10 1 1 2000 1997 1218 1479 350 1244 784 1715 999 92 396 1393 1726 1511 624 756 900 317
output:
0 57631948 610566455 356523655 593949258 665757514 349394180 73375269 50652564 663822508
result:
ok 10 lines
Test #3:
score: 20
Accepted
time: 35ms
memory: 4272kb
input:
10 1 1 100000 99997 36934 50467 5497 37576 83775 15544 23817 68917 33052 49207 59924 39340 2708 2614...
output:
0 73866797 788834869 539491921 582239610 497376436 343937059 324406513 13225836 35059446
result:
ok 10 lines
Test #4:
score: 20
Accepted
time: 34ms
memory: 4272kb
input:
10 1 1 100000 99997 6792 14252 90281 65716 46434 67120 18977 30384 16191 33996 3425 10433 31783 4263...
output:
0 73866797 609230597 213203975 638117274 527713366 525065128 867713025 174019248 375031322
result:
ok 10 lines
Test #5:
score: 20
Accepted
time: 30ms
memory: 4276kb
input:
10 1 1 100000 99994 47270 99792 93093 92620 88764 20724 48143 99711 33293 89038 2816 16811 97638 670...
output:
0 796648553 5720713 279796657 802039459 22848874 23038351 610731858 629891152 812026839
result:
ok 10 lines