提交记录 15569
| 提交时间 |
评测时间 |
| 2021-01-01 21:41:48 |
2021-01-01 21:41:56 |
unsigned dp[1<<20];
const int DX = 2;
void solve100(int n, char* L, char* R) {
static unsigned dqb[1<<20];
unsigned* dq = dqb+DX;
for (int i=-DX; i<n+DX; ++i) {
dq[i] = 0;
}
for (int i=0; i<DX; ++i) {
dq[i] = dp[i];
}
int shift = 0, qmark = 0;
for (int i=0; i<DX; ++i) {
switch (L[i]) {
case '(':
--dq;
++shift;
break;
case ')':
0[++dq]=0;
--shift;
break;
case '?':
for (int j=-1; j<DX; ++j)
dq[j] += dq[j+2];
--dq;
++qmark;
break;
}
}
//puts("DEBUGa");for (int i=0; i<10; ++i) printf("dq[%d]=%u\n", i, dq[i]);
int z[2*DX+2] = {};
z[qmark*2] = 1;
//printf ("qmark=%d shift=%d\n", qmark, shift);
while (qmark--) {
for (int i=0; i<2*DX; ++i) {
z[i] += z[i+2];
}
--shift;
}
for (int i=0; i<2*DX+2; ++i) {
if (z[i]) {
for (int j=DX; j<n; ++j)
dq[j+shift+i] += z[i] * dp[j];
//printf("DEBUGq %d %u\n", i, z[i]);for (int i=0; i<10; ++i) printf("dq[%d]=%u\n", i, dq[i]);
}
}
for (int i=0; i<n; ++i) {
dp[i] = dq[i];
}
//puts("DEBUGb");for (int i=0; i<10; ++i) printf("dq[%d]=%u\n", i, dq[i]);
}
unsigned solve(int n, char* s) {
dp[0] = 1;
int i;
for (i=0; i<n-DX; i+=DX) solve100(n, s+i, s+i+DX);
solve100(n, s+i, s+n);
return dp[0];
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 2.321 ms | 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 + 972 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:29:30 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠