- xor_bitset 的博客
solution.[构造括号序列]
- 2025-7-7 19:37:13 @
构造括号序列
题目描述
你需要构造一个长度大于等于 并且 小于等于 的括号序列 ,使得 中有 对数对 满足 且 为左括号 (
、 为右括号 )
。
如果无解输出 -1
。
输入格式
输入第 行 个数 ,表示数据组数。 接下来 行,每行 个数 。
输出格式
输出共 行,每行一个仅包含左括号 (
和右括号 )
的括号串 。如果无解输出 -1
。
样例
输入
2
1 115 3
3 4 7
输出
((()
-1
数据范围
- Subtask 1:,,。
- Subtask 2:,。
对于所有数据,满足:
- 。
- 。
- 。
保证所有测试点均存在输出总长度不超过 个字符的正确答案。
- 时间限制:2s
- 空间限制:512 MB
- 是否有 Special Judge:是
题解
考虑构造连续的 个左括号和连续的 个右括号,其中 或 。
不难发现只要交换一个左括号和一个右括号即可构造出 对合法括号对,且这种构造方案下生成的 是连续的。
贪心求出长度为 时的合法括号对数量的最大值然后判一下无解即可。
如果 太大就在末尾放连续的左括号,显然不产生任何贡献。