zoukankan      html  css  js  c++  java
  • hoj 1071 最大矩阵连乘次数

    最大矩阵连乘次数

    Time Limit:500MS  Memory Limit:65536K
    Total Submit:128 Accepted:72

    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

    wangzhiqun

    [Submit]   [Go Back]   [Status]   [Discuss]

     

    //13241 wupanlei 1071 Accepted 868K 15MS G++ 0.66K 2009-06-25 20:13:25 
    #include <iostream>
    #define MAX 1000
    using namespace std;
    int dp[MAX][MAX],p[MAX],n;
    void Init()
    {
        
    int i;
        
    for(i=0;i<=n;i++)
        {
            scanf(
    "%d",&p[i]);
        }
    }
    void MatrixChain()
    {
        
    int i,r,j,k;
        
    for(i=1;i<=n;i++)
            dp[i][i]
    =0;
        
    for(r=2;r<=n;r++)
            
    for(i=1;i<=n-r+1;i++)
            {
                j
    =r+i-1;
                dp[i][j]
    =dp[i][i]+dp[i+1][j]+p[i-1]*p[i]*p[j];
                
    for(k=i;k<j;k++)
                {
                    
    int temp=dp[i][k]+dp[k+1][j]+p[i-1]*p[k]*p[j];
                    
    if(temp>dp[i][j])
                        dp[i][j]
    =temp;
                }
            }
        printf(
    "%d\n",dp[1][n]);
    }
    int main()
    {
        
    int T;
        scanf(
    "%d",&T);
        
    while(T--)
        {
            scanf(
    "%d",&n);
            Init();
            MatrixChain();
        }
        
    return 0;
    }

     

  • 相关阅读:
    我修改/收藏的CSDN知识.(asp.net JavaScript)
    哪里摔倒就在哪里躺下
    显示存储过程的名称、创建时间、修改时间
    Flash Builder 初试(二)绑定和双向绑定
    C#支持中文的格式化字符长度方法
    Flash Builder 初试(一)信息提示窗口
    Flash Builder 初试(三) 使用摄像头
    Null Object 模式
    开放封闭原则(OCP)
    面向对象设计5大准则
  • 原文地址:https://www.cnblogs.com/forever4444/p/1511213.html
Copyright © 2011-2022 走看看