传送门
区间dp好题。
首先我们并不用把右括号拿进来一起 d p dp dp,而是直接用左括号来 d p dp dp。
然后定义状态 f i , j f_{i,j} fi,j表示区间 [ l , r ] [l,r] [l,r]的合法方案数。
如果没有限制直接分三种情况讨论就行了。
- 形如 ( A B ) (AB) (AB)
- 形如 ( ) A B ()AB ()AB
- 形如 ( A ) B (A)B (A)B
但是现在有了限制。
因此我们枚举决策的时候判当前转移是否合法。
如何判断呢?
我们建立一个数组 s t a t stat stat。
s t a t [ a ] [ b ] ! = 0 stat[a][b]!=0 stat[a][b]!=0表示 a a a对应的右括号被要求放在 b b b对应的右括号前面。
s t a t [ a ] [ b ] = 0 stat[a][b]=0 s