#P16580. [GKS 2016 #B] Sherlock and Parentheses

[GKS 2016 #B] Sherlock and Parentheses

题目描述

Sherlock 和 Watson 最近参加了一门计算机编程课程。今天,老师向他们讲解了括号匹配问题。一个仅由字符 ( 和 ) 组成的字符串 SS平衡的,如果它满足:

  • 它是空字符串,或者:
  • 它具有 (S)(S) 的形式,其中 SS 是平衡字符串,或者:
  • 它具有 S1S2S_1 S_2 的形式,其中 S1S_1 是平衡字符串且 S2S_2 是平衡字符串。

Sherlock 很快就写好了解法,并开始吹嘘自己有多厉害,于是 Watson 给他出了一个题来考验他的能力。Watson 要求 Sherlock 生成长度为 L+RL + R 的字符串 SS,其中总共有 LL 个左括号 ( 和 RR 个右括号 )。此外,该字符串必须包含尽可能多的不同的非空平衡子串。(只要两个子串在原串中的起始和结束下标不同,就视为不同,即使它们的内容完全相同)。注意 SS 本身不一定是平衡的。

Sherlock 确信,一旦他知道非空平衡子串的最大可能数量,他就能解决这个问题。你能帮他找出这个最大数量吗?

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例由一行两个整数 LLRR 组成。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是上述答案。

3
1 0
1 1
3 2
Case #1: 0
Case #2: 1
Case #3: 3

提示

在样例 11 中,唯一可能的字符串是 (。没有非空的平衡子串。

在样例 22 中,最优字符串是 ()。只有一个非空平衡子串:整个字符串本身。

在样例 33 中,字符串 ()()(()() 都能给出相同的最优答案。

例如,对于 ()()(,三个平衡子串分别是:下标 1122(),下标 3344(),以及下标 1144()()

限制条件

1T1001 \le T \le 100

小数据集(测试集 1 – 可见)

0L200 \le L \le 20

0R200 \le R \le 20

1L+R201 \le L + R \le 20

大数据集(测试集 2 – 隐藏)

0L1050 \le L \le 10^5

0R1050 \le R \le 10^5

1L+R1051 \le L + R \le 10^5

翻译由 DeepSeek V4 Pro 完成