QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#72812#4842. Rectangle Placementckiseki#AC ✓2ms3548kbC++201.1kb2023-01-19 15:24:122023-01-19 15:24:14

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-01-19 15:24:14]
  • 评测
  • 测评结果:AC
  • 用时:2ms
  • 内存:3548kb
  • [2023-01-19 15:24:12]
  • 提交

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"