ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#165248 | #2908. count | platelet | 100 | 7ms | 2420kb | C++11 | 1.1kb | 2022-11-09 22:01:35 | 2022-11-09 22:01:36 |
answer
#include <bits/stdc++.h>
#define rep(i, l, r) for(int i = (l); i <= (r); i++)
#define per(i, r, l) for(int i = (r); i >= (l); i--)
#define mem(a, b) memset(a, b, sizeof a)
#define For(i, l, r) for(int i = (l), i##e = (r); i < i##e; i++)
#define pb push_back
using namespace std;
using u32 = uint32_t;
using u64 = uint64_t;
using ll = long long;
const int N = 1e5 + 8, M = 1e5, P = 1e9 + 7;
int n, m;
u32 fac[N << 1], ifac[N];
u64 Pow(u64 a, u64 n, u64 r = 1) {
for(; n; n >>= 1, a = a * a % P)
if(n & 1) r = r * a % P;
return r;
}
inline u64 C(int n, int m) {
return n >= 0 && m >= 0 ? (u64)fac[n + m] * ifac[n] % P * ifac[m] % P : 0;
}
int main() {
cin.tie(0)->sync_with_stdio(0);
fac[0] = 1;
rep(i, 1, M << 1) fac[i] = (u64)fac[i - 1] * i % P;
ifac[M] = Pow(fac[M], P - 2);
per(i, M, 1) ifac[i - 1] = (u64)ifac[i] * i % P;
int T, n, m;
cin >> T;
while(T--) {
cin >> n >> m;
cout << (m * (m + 1ULL) / 2 % P * (C(n - 1, m) - C(n - 1, m - 1) + P) + n * (n + 1ULL) / 2 % P * (C(n, m - 1) - C(n - 1, m - 1) + P)) % P << '\n';
}
}
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 20
Accepted
time: 3ms
memory: 2416kb
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: 2420kb
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: 2416kb
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: 2ms
memory: 2416kb
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: 2ms
memory: 2416kb
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