zoj 1602

#include<iostream>
#include<fstream>

using namespace std;

int n;

long long dp[101][101];

int a[101];

void read(){
//    ifstream cin("in.txt");
    int i,j,k,s;
    while(cin>>n)
    {
    for(i=1;i<=n;i++)
        cin>>a[i];
    for(s=2;s<=n;s++)
        for(i=1;i+s<=n;i++)
        {
            j=i+s;
            dp[i][j]=-1;
            for(k=i+1;k<j;k++)
            {
                if(dp[i][j]==-1)
                    dp[i][j]=dp[i][k]+dp[k][j]+a[i]*a[k]*a[j];
                else
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[k]*a[j]);
            }
               
        }
    cout<<dp[1][n]<<endl;
    }

}

int main(){
    read();
    return 0;
}

posted on 2011-07-09 15:21  宇宙吾心  阅读(268)  评论(0)    收藏  举报

导航