题目
给定n个矩阵{A1,…,An},其中Ai和Ai+1可乘,i=1,2,…,n-1。考察矩阵连乘积加括弧的方式数。
如四个矩阵连乘积A1A2A3A4,共有五种不同的加括弧方式:
( A1 ( A2 ( A3 A4 ) ) )
( A1 ( ( A2 A3 ) A4 ) )
( ( A1A2 ) ( A3 A4 ) )
( A1 ( A2 A3 ) A4 )
( ( ( A1 A2 ) A3 ) A4 )
输入示例:
4
输出示例:
5
输入格式
输入矩阵连乘积的个数n(n<=20)。
输出格式
输出矩阵连乘积加括号的方式数。
输入样例
4
输出样例
5
解
对于n个矩阵的连乘积,设不同的计算次序(就是加括号方式数)为P(n)。假设最后一次括号加在第k个和第k+1个
(k=1…n-1)之间。
则P(n)的递归式如下:
P(n) = 1 if n=1;
P(n) = sum{ P(k)*P(n-k) | for k=1 to n-1 } if n>1
计算P(n)即可。
观察上面的
( A1 ( A2 ( A3 A4 ) ) )
( A1 ( ( A2 A3 ) A4 ) )
( ( A1A2 ) ( A3 A4 ) )
( A1 ( A2 A3 ) A4 )
( ( ( A1 A2 ) A3 ) A4 )
先添加外围的括号,一步步分治。