P3057 [USACO12NOV] Distant Pastures S

题目描述

农夫约翰的农场是一个 $N \times N$ 的牧场网格,每个牧场上种着两种不同种类的草之一。我们用字符 `(` 和 `)` 来表示这两种草,例如约翰的农场可能看起来像这样: ``` (()) )()( )((( )))) ``` 当奶牛贝茜在农场中移动时,从一个牧场移动到相邻的牧场(上、下、左、右一步)需要花费时间: - 如果两个牧场的草种类相同,花费 **$A$** 单位时间。 - 如果两个牧场的草种类不同,花费 **$B$** 单位时间。 当贝茜从一个牧场旅行到另一个较远的牧场时,她总是选择一条用时最短的路径。请计算:在所有可能的牧场对之间,按照最短路径行走所需时间的最大值。

输入格式

- 第一行:三个整数 $N$($1 \le N \le 30$)、$A$($0 \le A \le 10^6$)和 $B$($0 \le B \le 10^6$)。 - 接下来的 $N$ 行:每行包含一个长度为 $N$ 的括号字符串,共同构成一个 $N \times N$ 的括号网格。

输出格式

- 一行:一个整数,表示贝茜在任意两个牧场之间旅行所需的最大时间(假设她总是走最短路径)。

说明/提示

**样例解释** 从左上角牧场到右下角牧场需要 $5$ 单位时间。没有其他牧场对需要比这更长的时间。 **数据范围** - $1 \le N \le 30$ - $0 \le A, B \le 10^6$