括号序列 (bracket)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
大样例在题库第3587题下载
括号序列 (bracket)
题目描述
括号序列是一种特殊的字符串,只由 ( 和 ) 组成。
合法括号序列定义:
- 空串是合法括号序列。
- 若 和 均是合法括号序列,则 和 连接而成的括号序列是合法括号序列。
- 若 是合法括号序列,则 是合法括号序列。
套娃序列定义:如果一个长为 的合法括号序列满足前 个字符是 (,后 个字符是 ),那么这个括号序列是一个套娃序列。特殊地,空串是套娃序列。
给定括号序列 ,请你删除 的一个合法括号子序列(子序列不需要连续),使得剩下的部分是一个套娃序列。在此前提下,请最小化剩余串的长度。 请求出剩余串的最小长度;无解请输出 。
输入格式
在文件 bracket.in 中输入。
一行一个仅由 ( 和 ) 构成的括号序列 。
输出格式
在文件 bracket.out 中输出。
输出一行一个整数,表示剩余串的最小长度,无解输出 。
样例
样例输入 #1
(())
样例输出 #1
0
样例输入 #2
(()())
样例输出 #2
2
样例输入 #3
(
样例输出 #3
-1
###样例2说明
题解里隐含的意思是:我们要找的是原串中能作为套娃序列保留的最长子序列
也就是说,我们要在原串中选一个子序列,这个子序列本身是套娃序列,而且剩下的部分必须能组成一个合法括号序列(因为删除的部分要合法)
对于 (()()):
最大深度 mx=2,对应最长套娃是 (())(长度4)
删除剩下的 ()(长度2),恰好是一个合法括号序列
所以答案是 6-4=2 我们要在原串中保留最长的套娃子序列,而不是考虑能否删除整个串。
数据范围
令 表示字符串长度:
- 部分测试点:
- 部分测试点:
- 全部测试点:
- 字符串仅包含
(和)。
2026年CSP-S第二场模拟第二轮比赛(需要文件读写)
- 状态
- 已结束
- 规则
- OI
- 题目
- 4
- 开始于
- 2026-7-25 19:25
- 结束于
- 2026-7-25 23:31
- 持续时间
- 4.1 小时
- 主持人
- 参赛人数
- 40