QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#72812 | #4842. Rectangle Placement | ckiseki# | AC ✓ | 2ms | 3548kb | C++20 | 1.1kb | 2023-01-19 15:24:12 | 2023-01-19 15:24:14 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int modmul(int64_t a, int64_t b) {
return a * b % mod;
}
int modadd(int a, int b) {
return (a + b) % mod;
}
int modsub(int a, int b) {
return (a - b + mod) % mod;
}
int modpow(int a, int b) {
int r = 1;
while (b) {
if (b & 1) {
r = modmul(r , a);
}
a = modmul(a, a);
b >>= 1;
}
return r;
}
int C(int64_t a, int b) {
assert (b == 4);
int res = 1;
for (int j = 0; j < 4; j++)
res = modmul(res, a - j);
return modmul(res, modpow(24, mod - 2));
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int64_t H, W;
cin >> H >> W;
int ans = 0;
ans = modadd(ans, modmul(11, modmul(C(H, 4), C(W, 4))));
ans = modadd(ans, modmul(C(H, 4), modmul(modmul(W-1,W-1), W)));
ans = modadd(ans, modmul(C(W, 4), modmul(modmul(H-1,H-1), H)));
ans = modsub(ans, modmul(C(H, 4), 1LL*W*(W-1)/2%mod));
ans = modsub(ans, modmul(C(W, 4), 1LL*H*(H-1)/2%mod));
cout << ans << '\n';
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 3516kb
input:
4 5
output:
275
result:
ok 1 number(s): "275"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3356kb
input:
723435135 239873451
output:
832099301
result:
ok 1 number(s): "832099301"
Test #3:
score: 0
Accepted
time: 2ms
memory: 3316kb
input:
10348683 1000000000
output:
959472414
result:
ok 1 number(s): "959472414"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3380kb
input:
1000000000 886687075
output:
994294391
result:
ok 1 number(s): "994294391"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3356kb
input:
238133469 977550485
output:
181382226
result:
ok 1 number(s): "181382226"
Test #6:
score: 0
Accepted
time: 1ms
memory: 3352kb
input:
895943525 1000000000
output:
574248092
result:
ok 1 number(s): "574248092"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3400kb
input:
1000000000 772281920
output:
2306050
result:
ok 1 number(s): "2306050"
Test #8:
score: 0
Accepted
time: 2ms
memory: 3548kb
input:
123728314 859786182
output:
722858859
result:
ok 1 number(s): "722858859"
Test #9:
score: 0
Accepted
time: 2ms
memory: 3360kb
input:
76505681 1000000000
output:
94904116
result:
ok 1 number(s): "94904116"
Test #10:
score: 0
Accepted
time: 2ms
memory: 3400kb
input:
1000000000 952844073
output:
632222340
result:
ok 1 number(s): "632222340"
Test #11:
score: 0
Accepted
time: 0ms
memory: 3360kb
input:
599257776 36989190
output:
592333335
result:
ok 1 number(s): "592333335"
Test #12:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
257067834 1000000000
output:
520152555
result:
ok 1 number(s): "520152555"
Test #13:
score: 0
Accepted
time: 2ms
memory: 3356kb
input:
1000000000 133406229
output:
769022397
result:
ok 1 number(s): "769022397"
Test #14:
score: 0
Accepted
time: 2ms
memory: 3520kb
input:
484852621 919224885
output:
829749309
result:
ok 1 number(s): "829749309"
Test #15:
score: 0
Accepted
time: 2ms
memory: 3296kb
input:
437629987 1000000000
output:
388969627
result:
ok 1 number(s): "388969627"
Test #16:
score: 0
Accepted
time: 2ms
memory: 3520kb
input:
1000000000 313968382
output:
471013029
result:
ok 1 number(s): "471013029"
Test #17:
score: 0
Accepted
time: 2ms
memory: 3548kb
input:
665414774 326352585
output:
424688776
result:
ok 1 number(s): "424688776"
Test #18:
score: 0
Accepted
time: 2ms
memory: 3416kb
input:
1000000000 1000000000
output:
656213933
result:
ok 1 number(s): "656213933"
Test #19:
score: 0
Accepted
time: 0ms
memory: 3372kb
input:
4 4
output:
71
result:
ok 1 number(s): "71"
Test #20:
score: 0
Accepted
time: 0ms
memory: 3356kb
input:
4 1000000000
output:
946327704
result:
ok 1 number(s): "946327704"
Test #21:
score: 0
Accepted
time: 2ms
memory: 3316kb
input:
1000000000 4
output:
946327704
result:
ok 1 number(s): "946327704"