BZOJ4350: 括号序列再战猪猪侠(区间DP)

博客讲述了如何解决一道与括号序列相关的问题,该问题涉及区间DP的应用。题目中给出了合法括号序列的定义,并描述了一个包含特定条件的括号序列还原任务。博主通过分析指出,这实际上是一个裸露的区间DP问题,通过设立状态f1和f2来分别表示不同类型的合法序列,并给出DP转移方程。同时,博主还讨论了处理冲突和使用ban矩阵进行区间查询的方法,以解决存在多个合法序列或错误信息的情况。最后,博主强调了不要被质数模数迷惑,而应该关注问题的本质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门

括号序列与猪猪侠又大战了起来。
众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号
序列S合法,当且仅当:
1.( )是一个合法的括号序列。
2.若A是合法的括号序列,则(A)是合法的括号序列。
3.若A,B是合法的括号序列,则AB是合法的括号序列。
我们考虑match[i]表示从左往右数第i个左括号所对应的是第几个右
括号,现在他得到了一个长度为2n的括号序列,给了你m个信息,第i
个信息形如ai,bi,表示match[ai]<match[bi],要你还原这个序列。
但是你发现这个猪猪侠告诉你的信息,可能有多个括号序列合法;甚
至有可能告诉你一个不存在合法括号序列的信息!
你最近学了取模运算,你想知道答案对998244353(7*17*2^23+1)取
模的结果,这个模数是一个质数。

题解:
首先不要被模数是质数给误导了往奇怪的方面想,其实这是一道挺裸的区间DP。

首先考虑没有任何限制怎么做。
样例已经说了,这就是卡特兰数,但是我很弱不会,考虑怎么DP。

不妨设 f1[l][r] 表示第 l ~ r 个括号的所有合法序列, f2[l][r] 为第 l ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值