CF1976D.Invertible Bracket Sequences
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
我们定义一个合法的括号序列,是仅由 ( 和 ) 构成的字符串且:
- 空串 ϵ 是合法的括号序列。
- 若 s 为合法的括号序列,则 (s) 也为合法的括号序列。
- 若 s,t 均为合法的括号序列,则 st 也为合法的括号序列。(其中 st 表示将字符串 s 和 t 拼接。)
定义对一个括号序列的翻转操作为:将这个括号序列的所有 ( 变为 ),所有 ) 变为 (。
如 ()((( 翻转后成为 )()))。
给定一个保证合法的字符串 s。
你可以选择字符串 s 的一个子串进行翻转操作。(注意是子串,与子序列区分,子串要求连续。)
问翻转了一个子串后得到的字符串 s′ 仍然是合法括号序列的方案数。
输入格式
先是一个数字 t 表示数据组数(1≤t≤104)。
接下来 t 行,每行一个合法括号序列 s(1≤∑∣s∣≤2×105)。
输出格式
对于每组数据,输出一个数字 x,表示翻转 s 的一个子串后仍然是合法括号序列的方案数。
输入输出样例
输入#1
4 (()) () ()()() (()())(())
输出#1
1 0 3 13
说明/提示
在本题中,不可以翻转长度为 0 的子串。
translate by Hoks。
输入解题思路,AI测评打分。不知道怎么写?