QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#839210#1089. Biological Software UtilitiesPhangAC ✓11ms19240kbC++231.1kb2025-01-01 14:45:562025-01-01 14:45:57

Judging History

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

  • [2025-01-01 14:45:57]
  • 评测
  • 测评结果:AC
  • 用时:11ms
  • 内存:19240kb
  • [2025-01-01 14:45:56]
  • 提交

answer

#include<bits/stdc++.h>
#define rep1(i, a, b) for(int i = a; i <= b; ++i)
#define rep2(i, a, b) for(int i = a; i >= b; --i)
#define ft first
#define sd second
#define pii pair <int, int>
#define ll long long
#define ld long double
#define pb push_back
#define debug puts("----------------------------")
const int N = 1e6 + 10, mod = 998244353;
using namespace std;
int n; ll fac[N], inv[N];
ll qpow(ll x, ll b) {
    ll res = 1;
    while(b > 0) {
        if(b & 1) res *= x, res %= mod;
        x *= x; x %= mod; b >>= 1;
    } return res;
}
ll C(int x, int y) {return fac[x] * inv[y] % mod * inv[x - y] % mod;}
int main() {
    cin >> n; fac[0] = inv[0] = 1;
    if(n & 1) return cout << 0 << '\n', 0;
    rep1(i, 1, n) fac[i] = fac[i - 1] * i % mod;
    inv[n] = qpow(fac[n], mod - 2);
    rep2(i, n - 1, 1) inv[i] = inv[i + 1] * (i + 1) % mod;
    ll ans = C(n, n / 2) * fac[n / 2] % mod;
    ans *= qpow(n / 2, n / 2 - 2); ans %= mod;
    ans *= qpow(qpow(2, mod - 2), n / 2); ans %= mod;
    ans *= qpow(4, n / 2 - 1); ans %= mod;
    cout << ans << '\n';
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 5724kb

input:

1

output:

0

result:

ok 1 number(s): "0"

Test #2:

score: 0
Accepted
time: 1ms
memory: 5656kb

input:

2

output:

1

result:

ok 1 number(s): "1"

Test #3:

score: 0
Accepted
time: 1ms
memory: 5592kb

input:

3

output:

0

result:

ok 1 number(s): "0"

Test #4:

score: 0
Accepted
time: 1ms
memory: 5688kb

input:

4

output:

12

result:

ok 1 number(s): "12"

Test #5:

score: 0
Accepted
time: 1ms
memory: 5732kb

input:

7788

output:

178152092

result:

ok 1 number(s): "178152092"

Test #6:

score: 0
Accepted
time: 11ms
memory: 19240kb

input:

1000000

output:

178454094

result:

ok 1 number(s): "178454094"

Test #7:

score: 0
Accepted
time: 0ms
memory: 5680kb

input:

12346

output:

751958800

result:

ok 1 number(s): "751958800"

Test #8:

score: 0
Accepted
time: 7ms
memory: 19228kb

input:

999996

output:

690785929

result:

ok 1 number(s): "690785929"

Test #9:

score: 0
Accepted
time: 1ms
memory: 5656kb

input:

6

output:

720

result:

ok 1 number(s): "720"

Test #10:

score: 0
Accepted
time: 1ms
memory: 5596kb

input:

10

output:

30240000

result:

ok 1 number(s): "30240000"

Test #11:

score: 0
Accepted
time: 1ms
memory: 5592kb

input:

99

output:

0

result:

ok 1 number(s): "0"

Test #12:

score: 0
Accepted
time: 1ms
memory: 5592kb

input:

100

output:

934178078

result:

ok 1 number(s): "934178078"

Test #13:

score: 0
Accepted
time: 1ms
memory: 5588kb

input:

20

output:

245111072

result:

ok 1 number(s): "245111072"

Test #14:

score: 0
Accepted
time: 1ms
memory: 5528kb

input:

38745

output:

0

result:

ok 1 number(s): "0"

Test #15:

score: 0
Accepted
time: 1ms
memory: 5560kb

input:

3848

output:

928659530

result:

ok 1 number(s): "928659530"

Test #16:

score: 0
Accepted
time: 1ms
memory: 5592kb

input:

347835

output:

0

result:

ok 1 number(s): "0"

Test #17:

score: 0
Accepted
time: 0ms
memory: 10144kb

input:

234234

output:

745247398

result:

ok 1 number(s): "745247398"

Test #18:

score: 0
Accepted
time: 1ms
memory: 5684kb

input:

12

output:

818069491

result:

ok 1 number(s): "818069491"

Test #19:

score: 0
Accepted
time: 1ms
memory: 5520kb

input:

98

output:

648803799

result:

ok 1 number(s): "648803799"

Test #20:

score: 0
Accepted
time: 1ms
memory: 5588kb

input:

124

output:

159487965

result:

ok 1 number(s): "159487965"

Test #21:

score: 0
Accepted
time: 1ms
memory: 5536kb

input:

1024

output:

318674437

result:

ok 1 number(s): "318674437"

Test #22:

score: 0
Accepted
time: 0ms
memory: 15820kb

input:

524288

output:

495260023

result:

ok 1 number(s): "495260023"

Test #23:

score: 0
Accepted
time: 1ms
memory: 5684kb

input:

524289

output:

0

result:

ok 1 number(s): "0"

Test #24:

score: 0
Accepted
time: 1ms
memory: 5528kb

input:

999999

output:

0

result:

ok 1 number(s): "0"

Test #25:

score: 0
Accepted
time: 1ms
memory: 5592kb

input:

999997

output:

0

result:

ok 1 number(s): "0"