UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#166519#2908. countLJ0710012ms2712kbC++111.2kb2022-11-20 16:05:432022-11-20 16:05:45

answer

#include <bits/stdc++.h>
#define For(i, l, r) for (int i(l), e##i(r); i <= e##i; ++i)
#define Rof(i, r, l) for (int i(r), e##i(l); i >= e##i; --i)
using namespace std;
template<class T>void rd(T &x, char c = getchar(), bool f = true)
{
	for (; !isdigit(c); c = getchar()) f = c != '-';
	for (x = 0; isdigit(c); c = getchar()) x = x * 10 + (c ^ 48);
	x = f ? x : -x;
}
template<class A, class... B>void rd(A &x, B&... y) {rd(x), rd(y...);}
using i64 = long long;
using vi = vector<int> ;
template<const int T>using AR = array<int, T>;
#define pb push_back
#define SZ(x) (int)x.size()
const int N(2e5 + 5), P(1e9 + 7);
int T, n, m, fac[N + 5]{1}, ifac[N + 5];
int C(int a, int b)
{
	return a < b || b < 0 ? 0 : 1ll * fac[a] * ifac[b] % P * ifac[a - b] % P; 
}
int fpw(int a, int b)
{
	int t(1);
	for (; b; b >>= 1, a = 1ll * a * a % P) if (b & 1) t = 1ll * t * a % P;
	return t;
}
int main() 
{
	For(i, 1, N) fac[i] = 1ll * fac[i - 1] * i % P;
	ifac[N] = fpw(fac[N], P - 2);
	Rof(i, N, 1) ifac[i - 1] = 1ll * ifac[i] * i % P;
	for (rd(T); T--; )
	{
		int n, m;
		rd(n, m);
		printf("%lld\n", (1ll * n * m - 1) % P
			* C(n + m - 2, n - 1) % P);
	}
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 20
Accepted
time: 4ms
memory: 2712kb

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: 0ms
memory: 2708kb

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: 4ms
memory: 2712kb

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: 4ms
memory: 2708kb

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: 0ms
memory: 2712kb

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