2680: 最大矩阵连乘次数 

Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByte
Total Submit: 144            Accepted:77

Description

给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最大。

Input

输入包含多组测试数据。第一行为一个整数C,表示有C组测试数据,接下来有2*C行数据,每组测试数据占2行,每组测试数据第一行是1个整数n(n≤10),表示有n个矩阵连乘,接下来一行有n+1个数,表示是n个矩阵的行及第n个矩阵的列,它们之间用空格隔开。

Output

你的输出应该有C行,即每组测试数据的输出占一行,它是计算出的矩阵最大连乘积次数。

Sample Input

1
3
10 100 5 50

Sample Output

75000

Source

TOJ

矩阵乘法满足结合律

#include <stdio.h>
int w,n,p[],m[][],s[][];
int main()
{
scanf("%d",&w);
while(w--)
{
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d",&p[i]);
for(int i=; i<=n; i++)
m[i][i]=;
for(int r=; r<=n; r++)
for(int i=; i<=n-r+; i++)
{
int j=r+i-;
m[i][j]=m[i+][j]+p[i-]*p[i]*p[j];
s[i][j]=i;
for(int k=i+; k<j; k++)
{
int t=m[i][k]+m[k+][j]+p[i-]*p[k]*p[j];
if(t>m[i][j])
{
m[i][j]=t;
s[i][j]=k;
}
}
}
printf("%d\n",m[][n]);
}
return ;
}

最新文章

  1. 《简明python教程》笔记二
  2. SQL-基础知识
  3. BestCoder22 1002.NPY and arithmetic progression(hdu 5143) 解题报告
  4. OpenStack主机列表接口
  5. Mac下使用Apache TCPMon
  6. 左侧菜单 z
  7. BZOJ 3207 花神的嘲讽计划Ⅰ(函数式线段树)
  8. java 调用OpenOffice将word格式文件转换为pdf格式
  9. C# 实例化顺序
  10. [Oracle] - 性能优化工具(5) - AWRSQL
  11. Bek Trak Trik for wireless WPA/WPA2 &amp; SSH &amp; email
  12. centos 命令行 连接无线网卡
  13. 兼容IE低版本
  14. 用DapperExtensions和反射来实现一个通用搜索
  15. libcurl的使用
  16. 微信小程序,转盘抽奖
  17. 我是如何用redis做实时订阅推送的
  18. 服务器配置+wordpress建站(小白)
  19. [转]vnpy乱乱谈 02架构
  20. js forEach跳出循环

热门文章

  1. Linux系统常用命令大全
  2. AD 域复制FRS 迁移到DFSR
  3. Python+Selenium之摘取网页上全部邮箱
  4. Win10权限问题
  5. Linq语法学习_增删篇。
  6. ceisum_加载倾斜摄影模型
  7. CDOJ 490 UESTC 490 Swap Game(思路,逆序对)
  8. tmpfs与内存盘
  9. Servlet的引入(即加入Servlet)
  10. 【dp】石子归并