#P1475. 括号(brackets)
括号(brackets)
题目描述
一个正规括号序列的定义如下:
()和[]是正规括号序列;- 若
A是正规括号序列,则(A)和[A]也是正规括号序列; - 若
A和B都是正规括号序列,则AB也是正规括号序列。
在包含至少一对方括号的正规括号序列中,我们将方括号(包括 [ 和 ])都用 ( 代替,这样就可以得到一个非正规括号序列。
例如 (( 和 ((((())) 都是非正规括号序列,(( 可以由 [] 得到,((((())) 则可以由 []((())),([](())),(([]())) 和 ((([]))) 这四种正规括号序列得到。
你的任务是:给出一个非正规括号序列,求出有多少种正规括号序列,使得将其中的方括号用 ( 代替后,可以得到给定的非正规括号序列。
输入格式
第一行一个正整数 ,代表给定序列的长度。
第二行一个长度为 的字符串(只包含 ( 和 )),代表给定的非正规括号序列。
输出格式
输出要求的正规括号序列的数量对 取模的结果。
输入输出样例 #1
输入 #1
4
((()
输出 #1
2
满足条件的正规括号序列有两种:[]() 和 ([])。
输入输出样例 #2
输入 #2
8
((((((((
输出 #2
14
满足条件的正规括号序列有:[][][][],[[]][][],[[]][[]],[][][[]],[[[]]][],[[][]][],[][[][]],[][[[]]],[[[[]]]],[[][[]]],[[[]][]],[[][][]],[[[][]]],[][[]][]。
数据范围
- 对于 的数据:;
- 对于 的数据:;
- 对于 的数据:。
大样例下载
百度网盘大样例下载 提取码: GFOI