ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#164689 | #2908. count | anti | 100 | 14ms | 2752kb | C++11 | 1.2kb | 2022-11-05 13:15:08 | 2022-11-05 13:15:10 |
answer
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for (int i=(a);i<=(n);i++)
#define per(i,a,n) for (int i=(n);i>=(a);i--)
#define inf 0x3f3f3f3f
#define infll 0x3f3f3f3f3f3f3f3f
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
#define lowbit(i) ((i)&(-i))
#define all(x) x.begin(),x.end()
#define SZ(x) ((int)x.size())
using namespace std;
const int N = 200015, mod = 1e9 + 7;
int n, m, fac[N], ifac[N];
int qpow(int a, int b) {
int res = 1;
while (b) {
if (b & 1) res = (ll) res * a % mod;
a = (ll) a * a % mod;
b >>= 1;
}
return res;
}
int Binom(int a, int b) {
if (a < b || b < 0) return 0;
return (ll) fac[a] * ifac[a - b] % mod * ifac[b] % mod;
}
void solve() {
scanf("%d%d", &n, &m);
ll ans = (ll) ((ll) (1 + m) * m / 2) % mod * Binom(n + m - 2, n - 2) % mod + (ll) ((ll) (1 + n) * n / 2) % mod * Binom(n + m - 2, m - 2) % mod; // }
printf("%lld\n", ans % mod);
}
int main() {
fac[0] = 1;
rep(i, 1, N - 1) fac[i] = (ll) fac[i - 1] * i % mod;
ifac[N - 1] = qpow(fac[N - 1], mod - 2);
per(i, 0, N - 2) ifac[i] = (ll) ifac[i + 1] * (i + 1) % mod;
int t;
scanf("%d", &t);
while (t--) solve();
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 20
Accepted
time: 2ms
memory: 2748kb
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: 4ms
memory: 2748kb
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: 2748kb
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: 0ms
memory: 2752kb
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: 4ms
memory: 2752kb
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