提交记录 4274


用户 题目 状态 得分 用时 内存 语言 代码长度
Dof noi18b. 【NOI2018】冒泡排序 Wrong Answer 84 93.637 ms 11752 KB C++ 1.40 KB
提交时间 评测时间
2018-07-19 16:38:42 2020-07-31 22:49:21
#include <cstdio>
#include <cstring>
#include <algorithm>

typedef long long LL;
const int N = 600005, MOD = 998244353;

int tc, n;
int fac[N << 1], ifac[N << 1], p[N], len[N], vis[N];

inline int Pow(int x, int b) {
  static int re;
  for (re = 1; b; b >>= 1, x = (LL) x * x % MOD)
    if (b & 1) re = (LL) re * x % MOD;
  return re;
}

inline int C(int x, int y) {
  if (x < y) throw;
  return (LL) fac[x] * ifac[y] % MOD * ifac[x - y] % MOD;
}

int main() {
  fac[0] = 1;
  for (int i = 1; i < N; ++i) {
    fac[i] = (LL) fac[i - 1] * i % MOD;
  }
  ifac[N - 1] = Pow(fac[N - 1], MOD - 2);
  for (int i = N - 1; i >= 1; --i) {
    ifac[i - 1] = (LL) ifac[i] * i % MOD;
  }
  
  scanf("%d", &tc);
  for (; tc; --tc) {
    int re = 0;
    memset(vis, 0, sizeof vis);
    memset(len, 0, sizeof len);
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &p[i]);
    }
    for (int i = 1, low = 1, mx = 0; i <= n; ++i) {
      mx = std::max(mx, p[i]);
      len[n - i] = n - mx;
      for (vis[p[i]] = 1; vis[low]; ++low);
      if (mx > p[i] && p[i] > low) break;
    }
    for (int i = 0; i < n; ++i) {
      int x = 0;
      if (i > 0) x = std::max(x, len[i - 1] - 1);
      for (int j = x; j < len[i]; ++j) {
	re = (re + C(i + j, i)) % MOD;
      }
    }
    for (int i = 1; i < len[n - 1]; ++i) {
      re = (re - C(n - 1 + i, i - 1)) % MOD;
    }
    printf("%d\n", (re + MOD) % MOD);
  }

  return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #15.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #25.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #35.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #45.656 ms9 MB + 196 KBAcceptedScore: 4

Testcase #55.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #65.656 ms9 MB + 196 KBAcceptedScore: 4

Testcase #75.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #85.656 ms9 MB + 196 KBAcceptedScore: 4

Testcase #95.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #105.655 ms9 MB + 196 KBAcceptedScore: 4

Testcase #115.654 ms9 MB + 196 KBAcceptedScore: 4

Testcase #125.672 ms9 MB + 196 KBAcceptedScore: 4

Testcase #135.679 ms9 MB + 196 KBAcceptedScore: 4

Testcase #145.674 ms9 MB + 196 KBAcceptedScore: 4

Testcase #155.68 ms9 MB + 196 KBAcceptedScore: 4

Testcase #165.68 ms9 MB + 196 KBAcceptedScore: 4

Testcase #175.796 ms9 MB + 196 KBAcceptedScore: 4

Testcase #185.798 ms9 MB + 196 KBAcceptedScore: 4

Testcase #195.797 ms9 MB + 200 KBAcceptedScore: 4

Testcase #205.803 ms9 MB + 200 KBAcceptedScore: 4

Testcase #2159.371 ms10 MB + 212 KBAcceptedScore: 4

Testcase #2273.398 ms10 MB + 472 KBWrong AnswerScore: 0

Testcase #2391.229 ms10 MB + 908 KBWrong AnswerScore: 0

Testcase #2493.637 ms11 MB + 316 KBWrong AnswerScore: 0

Testcase #2592.578 ms11 MB + 488 KBWrong AnswerScore: 0


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-13 20:51:44 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠