题解:P12558 [UOI 2024] Heroes and Monsters
模拟赛场切了。括号序列上大分。
我们将题目转化为括号匹配模型:将
-
-
其他英雄都悲伤的充要条件是:它对应的子括号序列将左括号和右括号对调后是合法的。下文我们称这样的括号序列为“合法逆括号序列”。
根据这个,我们可以把题目转化为:
- 给定一个括号序列,对于每个
k ,问有多少种选择k 个右括号的方式,使得存在一种选择左括号的方式,提取这些选择的左括号、右括号形成的括号序列(以下称作序列1 )是合法的,并且剩余的括号序列(以下称作序列2 )是合法逆括号序列。
显然,我们选择前
括号序列是可以简单刻画的。我们只需要考虑使用栈匹配括号的过程,记录栈中括号的个数即可刻画其合法性。
分析到这里,我们就有多项式复杂度做法了。我们设
我们发现,
做到此处,发现无法优化状态,也不能使用数据结构优化。这使我们怀疑:这个题真的是用 dp 求出答案吗?
这时,转成括号序列的优势就显现出来了。我们很自然地发现,“选前
所以,我们可以从
于是,正解呼之欲出了。我们按照第
时间复杂度