提交记录 15568
| 提交时间 |
评测时间 |
| 2021-01-01 21:28:39 |
2021-01-01 21:28:47 |
#include <stdio.h>
unsigned dp[1<<20];
void solve100(int n, char* L, char* R) {
static unsigned dqb[1<<20];
unsigned* dq = dqb+100;
for (int i=-100; i<n+100; ++i) {
dq[i] = 0;
}
for (int i=0; i<100; ++i) {
dq[i] = dp[i];
}
int shift = 0, qmark = 0;
for (int i=0; i<100; ++i) {
switch (L[i]) {
case '(':
--dq;
++shift;
break;
case ')':
0[++dq]=0;
--shift;
break;
case '?':
for (int j=-1; j<100; ++j)
dq[j] += dq[j+2];
--dq;
++qmark;
break;
}
}
//puts("DEBUG");for (int i=0; i<10; ++i) printf("dq[%d]=%u\n", i, dq[i]);
int z[202] = {1};
while (qmark--) {
for (int i=0; i<200; ++i) {
z[i+2] += z[i];
}
--shift;
}
for (int i=0; i<202; ++i) {
if (z[i])
for (int j=100; j<n; ++j)
dq[j] += z[i] * dp[i+shift];
}
for (int i=0; i<n; ++i) {
dp[i] = dq[i];
}
}
unsigned solve(int n, char* s) {
dp[0] = 1;
int i;
for (i=0; i<n-100; i+=100) solve100(n, s+i, s+i+100);
solve100(n, s+i, s+n);
return dp[0];
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 544.99 us | 36 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #2 | 3 s | 1 MB + 52 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #3 | 3 s | 1 MB + 976 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
| Testcase #4 | 3 s | 2 MB + 316 KB | Time Limit Exceeded | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-20 15:25:27 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠