题意:求有多少合法括号序列包含给定括号序列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的情况。