提交记录 4306


用户 题目 状态 得分 用时 内存 语言 代码长度
Dof noi18b. 【NOI2018】冒泡排序 Wrong Answer 0 82.754 ms 14076 KB C++ 1.34 KB
提交时间 评测时间
2018-07-19 20:12:03 2020-07-31 22:51:15
#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], 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;
}
inline int Cal(int x, int y) {
  if (x < y) return 0;
  int dis = 2 * x - y, re1 = C(dis, x);
  if (y + 2 > dis) return re1;
  return re1 - C(dis, (dis + y) / 2 + 1);
}

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, mx = 0, low = 1, he = 0;
    memset(vis, 0, sizeof vis);
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &p[i]);
    }
    for (int i = 1; i <= n; ++i, --he) {
      if (mx < p[i]) he += p[i] - mx;
      mx = std::max(mx, p[i]);
      for (vis[p[i]] = 1; vis[low]; ++low);
      re = (re + Cal(n - i + 1, he + 1)) % MOD;
      if (mx > p[i] && p[i] > low) {
	re = 0; break;
      }
    }
    printf("%d\n", (re + MOD) % MOD);
  }

  return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #110.148 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #210.151 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #310.15 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #410.15 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #510.149 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #610.149 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #710.148 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #810.148 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #910.147 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1010.147 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1110.147 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1210.165 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1310.168 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1410.168 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1510.169 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1610.169 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1710.261 ms11 MB + 472 KBWrong AnswerScore: 0

Testcase #1810.267 ms11 MB + 476 KBWrong AnswerScore: 0

Testcase #1910.266 ms11 MB + 476 KBWrong AnswerScore: 0

Testcase #2010.271 ms11 MB + 476 KBWrong AnswerScore: 0

Testcase #2155.498 ms12 MB + 488 KBWrong AnswerScore: 0

Testcase #2267.979 ms12 MB + 748 KBWrong AnswerScore: 0

Testcase #2380.457 ms13 MB + 160 KBWrong AnswerScore: 0

Testcase #2482.754 ms13 MB + 592 KBWrong AnswerScore: 0

Testcase #2581.687 ms13 MB + 764 KBWrong AnswerScore: 0


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