读书人

UVA 348 - Optimal Array Multiplicat

发布时间: 2012-09-27 11:11:17 作者: rapoo

UVA 348 - Optimal Array Multiplication Sequence runtime error:(无语啊!)
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include <algorithm>
#define N 100
#define inf 1000000
using namespace std;
typedef struct stru
{
int x;
int y;
} stru;
int m[N][N],way[N][N];
stru a[N];
void print(int i,int j)
{
if(i==j)
{
cout<<"A"<<i;
return ;
}
cout<<"(";
print(i,way[i][j]);
cout<<" x ";
print(way[i][j]+1,j);
cout<<")";
return ;
}

int main()
{
// freopen("ex.in","r",stdin);
int n,count=1;
while(cin>>n&&n)
{
for(int i=1; i<=n; i++)
{
cin>>a[i].x>>a[i].y;
}
//
// for(int i=1; i<=n; i++)
// {
// m[i][i]=0;
// }
memset(m,0,sizeof(m));
for (int i=1; i<n+1 ; i++ )
{
for (int j=1; j<n+1 ; j++)
way[i][j]=1;
}

int j,temp,flag,k;
for(int p=1; p<n; p++)
for(int i=1; i<=n-p; i++)
{
j=i+p;
m[i][j]=inf;
for(k=i; k<j; k++)
{
temp=m[i][k]+m[k+1][j]+a[i].x*a[k].y*a[j].y;
if(m[i][j]>temp)
{
m[i][j]=temp;
flag=k;
}
}
way[i][j]=flag;
}
cout<<"Case "<<count++<<": ";
print(1,n);
cout<<endl;
}
return 0;
}


求教!
为什么会runtime error!!!!
纠结死了!!

网址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=284

[解决办法]
可能数组越界!

读书人网 >C++

热点推荐