提交记录 19901


用户 题目 状态 得分 用时 内存 语言 代码长度
lotus_f wc2017b3. 【WC2017】挑战-任务3 Time Limit Exceeded 50 3 s 1856 KB C++14 1.32 KB
提交时间 评测时间
2023-08-11 18:16:10 2023-08-11 18:16:18
#include<bits/stdc++.h>
using namespace std;
unsigned dp[2][300010];
int hzh[300010];
unsigned solve(int n,char *s)
{
	for(int i=n; i>=1; --i) hzh[i]=hzh[i+1]+(s[i-1]=='('?1:-1);
	dp[0][0]=1;
	signed ax=0;
	for(int i=1; i<=n; ++i)
	{
		ax+=(s[i-1]==')'?-1:1);
		signed lim=min(ax,-hzh[i+1]);
		if((i&1)==0)
		{
			dp[i&1][lim/2+1]=dp[i&1][lim/2+2]=0;
			if(s[i-1]=='(')
			{
				dp[i&1][0]=0;
				memcpy(dp[i&1]+1,dp[i-1&1],(lim/2)*4);
			}
			else if(s[i-1]==')')
			{
				memcpy(dp[i&1],dp[i-1&1],(lim/2+1)*4);
			}
			else
			{
				memcpy(dp[i&1],dp[i-1&1],(lim/2+1)*4);
				for(int j=1; j<=lim/2; ++j) dp[i&1][j]+=dp[i-1&1][j-1];
			}
		}
		else
		{
			dp[i&1][(lim-1)/2+1]=dp[i&1][(lim-1)/2+2]=0;
			if(s[i-1]=='(')
			{
				memcpy(dp[i&1],dp[i-1&1],((lim-1)/2+1)*4);
			}
			else if(s[i-1]==')')
			{
				memcpy(dp[i&1],dp[i-1&1]+1,((lim-1)/2+1)*4);
			}
			else
			{
				memcpy(dp[i&1],dp[i-1&1],((lim-1)/2+1)*4);
				signed j;
				for(j=0; j<=(lim-1)/2-7; j+=8)
				{
					dp[i&1][j]+=dp[i-1&1][j+1],
					dp[i&1][j+1]+=dp[i-1&1][j+2],
					dp[i&1][j+2]+=dp[i-1&1][j+3],
					dp[i&1][j+3]+=dp[i-1&1][j+4],
					dp[i&1][j+4]+=dp[i-1&1][j+5],
					dp[i&1][j+5]+=dp[i-1&1][j+6],
					dp[i&1][j+6]+=dp[i-1&1][j+7],
					dp[i&1][j+7]+=dp[i-1&1][j+8];
				}
				while(j<=(lim-1)/2) dp[i&1][j]+=dp[i-1&1][j+1],++j;
			}
		}
	}
	return dp[n&1][0];
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1129.46 us44 KBAcceptedScore: 25

Testcase #21.027 s856 KBAcceptedScore: 25

Testcase #33 s1 MB + 548 KBTime Limit ExceededScore: 0

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


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