提交记录 4278


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

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

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

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) return 0;
  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 #110.52 ms13 MB + 768 KBAcceptedScore: 4

Testcase #210.516 ms13 MB + 768 KBAcceptedScore: 4

Testcase #310.517 ms13 MB + 768 KBAcceptedScore: 4

Testcase #410.516 ms13 MB + 768 KBAcceptedScore: 4

Testcase #510.517 ms13 MB + 768 KBAcceptedScore: 4

Testcase #610.516 ms13 MB + 768 KBAcceptedScore: 4

Testcase #710.52 ms13 MB + 768 KBAcceptedScore: 4

Testcase #810.518 ms13 MB + 768 KBAcceptedScore: 4

Testcase #910.518 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1010.519 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1110.519 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1210.537 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1310.541 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1410.543 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1510.543 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1610.545 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1710.662 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1810.661 ms13 MB + 768 KBAcceptedScore: 4

Testcase #1910.663 ms13 MB + 772 KBAcceptedScore: 4

Testcase #2010.668 ms13 MB + 772 KBAcceptedScore: 4

Testcase #2164.904 ms14 MB + 784 KBAcceptedScore: 4

Testcase #2279.2 ms15 MB + 20 KBAcceptedScore: 4

Testcase #2397.074 ms15 MB + 456 KBAcceptedScore: 4

Testcase #2498.98 ms15 MB + 888 KBAcceptedScore: 4

Testcase #2597.825 ms16 MB + 36 KBAcceptedScore: 4


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