提交记录 13695


用户 题目 状态 得分 用时 内存 语言 代码长度
15iq wc2017b3. 【WC2017】挑战-任务3 Wrong Answer 0 3 s 1072 KB C++11 936 B
提交时间 评测时间
2020-08-06 02:13:33 2020-08-06 02:13:39
#include <bits/stdc++.h>

using namespace std;

void add_n(const unsigned *a, int n, unsigned *b) {
  int i = 0;
  for (; i < n - 1; i += 2) {
    b[i] += a[i];
    b[i + 1] += a[i + 1];
  }
  for (; i < n; ++i) {
    b[i] += a[i];
  }
}

unsigned solve(int n, char *s) {
  int nsz = 1;
  unsigned *dp = new unsigned[n / 2 + 1]();
  unsigned *pd = new unsigned[n / 2 + 1];
  dp[0] = 1;
  for (int i = 0; i < n; ++i) {
    int sz = min(i + 1, n - i - 1) / 2 + 1;
    if (s[i] != ')') {
      if (i & 1) {
        copy_n(dp, min(nsz, sz - 1), pd + 1);
        pd[0] = 0;
        fill(pd + min(nsz + 1, sz), pd + sz, 0);
      } else {
        copy_n(dp, min(nsz, sz), pd);
        fill(pd + min(nsz, sz), pd + sz, 0);
      }
    }
    if (s[i] != '(') {
      if (i & 1) {
        add_n(dp, min(sz, nsz), pd);
      } else {
        add_n(dp + 1, min(nsz - 1, sz), pd);
      }
    }
    swap(pd, dp);
    nsz = sz;
  }
  return dp[0];
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1126.14 us32 KBWrong AnswerScore: 0

Testcase #2914.725 ms500 KBWrong AnswerScore: 0

Testcase #33 s908 KBTime Limit ExceededScore: 0

Testcase #43 s1 MB + 48 KBTime Limit ExceededScore: 0


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