[csp-s模拟测试72] 简单的序列

题意:求有多少合法括号序列包含给定括号序列s,且|p|+|s|+|q|=n

瓶颈:考试的时候忘了卡特兰数的定义了。。。+1和-1的次数相等,最后一定会归零且保证任意时刻前缀和>=0。

n-m<=2000,即空位只有2000。

为了使状态具体化,想到枚举|p|及p中的'('个数。这样我们就能推知|q|和q中的左括号个数。

对于p,为了填上s中的负数,左右括号个数可能不相同。

那么就转化成《网格》,二维表示+1 -1,不合法方案翻折后可以表示。

通用:设+1个数为n,-1个数为m

用完所有数且保证任意时刻前缀和>=0的方案数为$C_{n+m}^{n}-C_{n+m}^{m-1}$

右边的部分视为将坐标系上移,从0出发到-ned。

然后注意特判右边不能使前缀和回到0的情况。

posted @ 2019-10-14 21:46  hzoi_yzh  阅读(136)  评论(0编辑  收藏  举报