UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#164583#2908. countLates1009ms2712kbC++111.1kb2022-11-05 09:27:592022-11-05 13:01:17

answer

#include <bits/stdc++.h>
#include <assert.h>
using namespace std;
typedef long long ll;
#define ep emplace_back
#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
#define fin freopen("in.in","r",stdin);
inline int read() {
	int x=0, v=1,ch=getchar();
	while('0'>ch||ch>'9') {
		if(ch=='-') v=0;
		ch=getchar();
	}while('0'<=ch&&ch<='9') {
		x=(x*10)+(ch^'0');
		ch=getchar();
	}return v?x:-x;
}
const int MAX = 2e5+5, P = 1e9+7;
int T, fac[MAX], inv[MAX];
int n,m;

int qpow(int x,int p) {
	int ret=1;
	for(;p;x=1ll*x*x%P, p>>=1)if(p&1)ret=1ll*ret*x%P;
	return ret;
}
int C(int n,int m) {
	return (m < 0 || n < m) ? 0 : 1ll * fac[n] * inv[m] % P * inv[n-m] % P;
}
void init(int N = MAX - 5){
	fac[0] = 1;
	for(int i=1;i<=N;++i) fac[i] = 1ll * fac[i-1] * i % P;
	inv[N] = qpow(fac[N], P-2);
	for(int i=N;i>=1;--i) inv[i-1] = 1ll * inv[i] * i % P; 
}
void mian() {
	n=read(),m=read();
	printf("%lld\n", 1ll * ( 1ll * n * m % P + P - 1) % P * C(n+m-2,n-1) % P );
}
signed main() { 
	init();
	T=read();
	while(T--)mian();
	return 0;
}


详细

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

Test #1:

score: 20
Accepted
time: 3ms
memory: 2708kb

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: 2712kb

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

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