3100:修复括号序列

时间限制:2 S   /  内存限制:65536 KB
AC:14   /  Submit:45
问题描述

给定一个由$$()[]$$括号组成的字符串$$S$$

从形式上讲,只有满足下面几点之一,括号字符串才是合法的:

1、空串

2、如果一个串$$S$$是合法的,那么$$(S)$$、$$[S]$$也是合法的

3、如果$$a$$和$$b$$是合法的,那么$$ab$$也是合法的

4、如果把该串首尾相连后满足前三条,那么也认为是合法的

下面几个串是合法的:

()
][
(())
)([]
()[()]

下面几个串是不合法的:

(
]
)(]
([)]
([(]

给出一个括号串,你需要通过以下三种操作把这个串修复成合法串。

1、添加一个独立的括号,代价为$$a$$

2、删除一个独立的括号,代价为$$b$$

请你输出把这个串修复成合法串的最小代价。

输入描述

第一行是一个正整数$$T$$表示测试案例的数量。($$1 \le T \le 100$$)

每组案例先是三个正整数$$a,b$$表示添加和删除括号的代价。($$1 \le a,b \le 100$$)

然后是一个长度不超过$$100$$的括号串。

输出描述

针对每组样例,在一行中输出把这个串修复成合法串的最小代价。

样例输入复制样例

2

1 2

(

3 2

)]([

样例输出

1

4

相关

题单#22(动态规划之区间DP)

(选做题)算法设计与分析(22物联网/22智能)(动态规划扩展)


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1