UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#164908#2908. countLJYljy100167ms4276kbC++1.4kb2022-11-07 00:22:492022-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