logo AlgoBeat OnlineJudge
登录 注册

#214429. [DSDOI Round 1] 邓少笔记本

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

邓少的笔记本上有一个长度为 的括号序列 仅由 三种字符组成,其中 可以变化成一个

邓少认为一个括号序列是“好的”,当且仅当它满足以下条件:

对于该序列中 的所有可能的变化,都存在一种在这个序列末尾恰好添加 任意括号的方式,使得整个序列成为合法的括号序列。

例如,当 时,括号序列 是“好的”。因为:

  • 变化成 时,存在括号序列 满足上述条件;
  • 变化成 时,存在括号序列 满足上述条件。

而当 时,括号序列 不是“好的”。因为当 变化成 时,没有任何一种在末尾恰好添加 个任意括号的方式能使该括号序列合法。

需要注意的是,每个 可独立变成任意一个括号。也就是说,每一个 的变化情况都不会对其他任何 的变化造成影响

现在邓少找到了你,希望你告诉他,有多少个不同的 满足:将这个括号序列循环左移 位后,形成的括号序列是“好的”。

输入格式

本题有多组测试数据。

第一行包含一个正整数 ,表示数据组数。

接下来包含 组数据,每组数据的格式如下:

第一行包含两个正整数 ,含义如题所示。

第二行包含一个长为 的字符串 ,表示该括号序列。保证 仅由 三种字符组成。

输出格式

对于每组测试数据:

输出一行,包含一个整数,表示满足条件的 的数量。

样例

样例输入 1

3
3 3
((*
5 1
()(**
10 8
(**)(((((*

样例输出 1

2
0
3

数据范围与提示

【样例解释】

对于第一组测试数据:

  • ,此时括号序列为

    • 变化成 时,存在括号序列 满足要求;
    • 变化成 时,存在括号序列 满足要求。
  • ,此时括号序列为

    • 变化成 时,存在括号序列 满足要求;
    • 变化成 时,存在括号序列 满足要求。
  • ,此时括号序列为

    • 变化成 时,存在括号序列 满足要求;
    • 变化成 时,括号序列为 ,无法通过在序列末尾添加 个括号使其变为合法括号序列。因此, 不合法。

综上,有两个 满足要求,答案为

对于第二组测试数据,不存在任何一种方法能满足要求。

对于第三组测试数据,只有 满足要求。

【数据范围】

对于所有测试数据,保证:

  • 仅由 三种字符组成。
测试点编号 特殊性质
^ ^
^
^
^
^
^
^
  • 特殊性质 :保证
  • 特殊性质 :保证 仅由 组成。
  • 特殊性质 :保证 仅由 组成。