
#include
#include
using namespace std;
int w[1000], q[1000][1000];
int r[500][500];
int course(int i, int j)
{
int x, t;
int k;
if(r[i][j]>=0)
return r[i][j];
if(i == j)
return 0;
if(i == j-1)
{
q[i][i+1] = i;
r[i][j] = w[i] * w[i+1] * w[i+2];
return r[i][j];
}
x = course(i, i) + course(i+1, j) + w[i] * w[i+1] * w[j+1];
q[i][j]=i;
for(k = i+1; k> n && n!=0)
{
int flag = 1;
memset(w,0,sizeof(w));
memset(q,0,sizeof(q));
memset(r,0,sizeof(r));
for(i = 1; i <= n; i++)
{
cin >> w[i];
if(i > 1)
{
if(w[i] != tmp)
{
flag = 0;
}
}
cin >> tmp;
}
w[i] = tmp;//将矩阵的行列数量化成一列表达
for(i = 1; i<= n; i++)
{
for(j = 1; j <= n; j++)
{
r[i][j] = -1;
}
}
if(flag)
cout << course(1, n) << endl;
else
cout << "invalid argument" << endl;
}
return 0;
}
使用动态规划算法就能解决,如果不知道动态规划怎么写,出门右转bilibili
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)