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;
}
#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;
}
浙公网安备 33010602011771号