#125. 矩阵链乘法问题

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
难度:未设置 题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

给定一系列矩阵 A_{1},A_{2},\ldots,A_{n} ,其中矩阵 A_{i} 的维度为 p_{i-1}\times p_{i} 。

通过添加括号改变矩阵乘法的结合顺序,使得计算矩阵链乘积 A_{1}\times A_{2}\times\cdots\times A_{n} 所需的标量乘法次数最小。

输出最小乘法次数和最优括号化方案。

输入格式

第一行:整数 n (矩阵个数)。
第二行: n+1 个整数 p_{0},p_{1},\ldots,p_{n} ,表示矩阵链的维度序列( A_{i} 的维度为 p_{i-1}\times p_{i} )。

输出格式

第一行:最小标量乘法次数。
第二行:最优括号化方案(用 ( ) 表示计算顺序,例如 ((A1(A2A3))(A4A5)))。

样例

​​输入​​:

6
30 35 15 5 10 20 25

​​输出​​:

15125
((A1(A2A3))((A4A5)A6))

数据范围与提示

2≤n≤100

1≤p_i ​ ≤200 (矩阵维度)