#P16580. [GKS 2016 #B] Sherlock and Parentheses
[GKS 2016 #B] Sherlock and Parentheses
题目描述
Sherlock and Watson have recently enrolled in a computer programming course. Today, the tutor taught them about the balanced parentheses problem. A string consisting only of characters ( and/or ) is balanced if:
- It is the empty string, or:
- It has the form , where is a balanced string, or:
- It has the form , where is a balanced string and is a balanced string.
Sherlock coded up the solution very quickly and started bragging about how good he is, so Watson gave him a problem to test his knowledge. He asked Sherlock to generate a string of characters, in which there are a total of left parentheses ( and a total of right parentheses ). Moreover, the string must have as many different balanced non-empty substrings as possible. (Two substrings are considered different as long as they start and end at different indexes of the string, even if their content happens to be the same). Note that itself does not have to be balanced.
Sherlock is sure that once he knows the maximum possible number of balanced non-empty substrings, he will be able to solve the problem. Can you help him find that maximum number?
输入格式
The first line of the input gives the number of test cases, . test cases follow. Each test case consists of one line with two integers: and .
输出格式
For each test case, output one line containing Case #: , where is the test case number (starting from ) and is the answer, as described above.
3
1 0
1 1
3 2
Case #1: 0
Case #2: 1
Case #3: 3
提示
In Case , the only possible string is ( . There are no balanced non-empty substrings.
In Case , the optimal string is () . There is only one balanced non-empty substring: the entire string itself.
In Case , both strings ()() and (()() give the same optimal answer.
For the case ()()(, for example, the three balanced substrings are () from indexes to , () from indexes to , and ()() from indexes to .
Limits
.
Small dataset (Test set 1 - Visible)
.
.
.
Large dataset (Test set 2 - Hidden)
.
.
.