
/**//**************************************
Problem: HEU 8002 Multiplication Puzzle
Time: 0.0520 s
Memory: 576 k 
Accepted Time: 2009-05-18 18:47:28
Tips: DP
**************************************/
#include <stdio.h>
#include <string.h>
int main()


{
    int table[109][109],a[109],n,i,j,k;
    while(scanf("%d",&n)!=EOF)

    
{
        for(i=1;i<=n;i++)scanf("%d",&a[i]);
        memset(table,0,sizeof(table));
        for(k=2;k<=n;k++)//步长从2到n 

        
{
            for(i=1;i+k<=n;i++)

            
{
                if(k==2)

                
{
                    table[i][i+k]=a[i]*a[i+1]*a[i+2];
                }
                else

                
{
                    for(j=i+1;j<i+k;j++)

                    
{
                        int temp=table[i][j]+a[i]*a[j]*a[i+k]+table[j][i+k];
                        if(j==i+1||temp<table[i][i+k])table[i][i+k]=temp;
                    }
                }
            }
        }
        printf("%d\n",table[1][n]);
    }
    return 0;
}

 
 
             
            posted @ 
2009-05-18 18:50 
主函数 
阅读(
366) 
评论() 
 
收藏 
举报