ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#164583 | #2908. count | Lates | 100 | 9ms | 2712kb | C++11 | 1.1kb | 2022-11-05 09:27:59 | 2022-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