欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1997C.Even Positions
Even Positions
题目描述
Monocarp 有一个长度为 的正规括号序列 ( 是偶数)。他甚至想出了自己计算其代价的方法。
他知道,在一个正规括号序列(RBS)中,每一个左括号都与对应的右括号配对。因此,他决定将 RBS 的代价定义为所有配对括号之间距离的总和。
例如,考虑 RBS (())()。它有三个括号对:
- (__)__:第 位和第 位括号之间的距离为 ;
- _()___:第 位和第 位括号之间的距离为 ;
- ____():第 位和第 位括号之间的距离为 。
所以 (())() 的代价为 。不幸的是,由于数据损坏,Monocarp 丢失了所有奇数位置上的字符 。只剩下偶数位置上的字符()。例如,(())() 变成了 _(_)_)。
Monocarp 想通过在奇数位置放置括号来恢复他的 RBS。但由于恢复后的 RBS 可能不唯一,他想选择代价最小的那一个。对于 Monocarp 来说这太难了,所以你能帮帮他吗?
提示:正规括号序列是只包含括号的字符串,使得该序列在插入 1-s 和 +-s 后,能构成一个合法的数学表达式。例如,()、(()) 或 (()())() 是 RBS,而 )、()( 或 ())(()) 不是。
输入格式
第一行包含一个整数 ()——表示测试用例的数量。接下来是 组测试数据。
每组测试数据的第一行包含一个整数 (, 为偶数)——字符串 的长度。
每组测试数据的第二行包含一个长度为 的字符串 ,所有奇数位置上的字符都是 '_',所有偶数位置上的字符都是 '(' 或 ')'。
附加约束:
- 至少可以恢复成一个正规括号序列;
- 所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数——将 中的 '_' 替换为括号后,能得到的正规括号序列的最小代价。
说明/提示
在第一个测试用例中,最优做法是将 变为 (())(),其代价为 。
在第二个测试用例中,唯一的选择是 (),代价为 。
在第三个测试用例中,唯一可能的 RBS 是 ()()()(),代价为 。
在第四个测试用例中,最优做法是将 变为 (())(()),代价为 。
由 ChatGPT 4.1 翻译
样例
4
6
_(_)_)
2
_)
8
_)_)_)_)
8
_(_)_(_)
5
1
4
8
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |