UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#169386#2908. countcw1007ms1848kbC++11821b2023-02-27 18:52:072023-02-27 18:52:09

answer

#include<bits/stdc++.h>
using namespace std;

const int mod=1e9+7;
int pls(int x,int y){return (x=(x+y)%mod)<0?x+mod:x;}
int mul(int x,int y){return pls(1ll*x*y%mod,0);}
int power(int x,int y=mod-2){
    int c=1;
    while(y){if(y&1){c=mul(c,x);}x=mul(x,x),y>>=1;}
    return c;
}

int main(){
    int t,Max=0;scanf("%d",&t);
    vector< pair<int,int> > a(t);
    for(pair<int,int>& i:a){
        scanf("%d%d",&i.first,&i.second);
        Max=max(Max,max(i.first,i.second));
    }Max<<=1;
    vector<int> fac(Max+1);
    fac[0]=1;
    for(int i=1;i<=Max;i++) fac[i]=mul(fac[i-1],i);
    #define C(N,M) mul(fac[N],mul(power(fac[M]),power(fac[N-(M)])))
    for(int i=0,n,m;i<t;i++){
        n=a[i].first,m=a[i].second;
        printf("%d\n",mul(mul(n,m)-1,C(n+m-2,n-1)));
    }
    return 0;
}

Details

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

Test #1:

score: 20
Accepted
time: 0ms
memory: 1236kb

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

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

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

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

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