矩阵链乘法

http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1029

 

#include <stdio.h>
#include <memory.h>
#include <string.h>

unsigned int result[200][200],path[200];

void connie(int data[],int n)
{
	memset(result,-1,sizeof(int)*200*200);
	memset(path,0,sizeof(int)*200);
	
	int i,j,k;
	unsigned int temp;

	for(i=0;i<n;i++)result[i][i]=0;

	for(i=2;i<=n;i++)
	{
		for(j=0;j<n-i+1;j++)
		{
			for(k=j;k<j+i-1;k++)
			{
				temp=result[j][k]+result[k+1][j+i-1]+data[j]*data[k+1]*data[j+i];
				if(temp<result[j][j+i-1])
					result[j][j+i-1]=temp;
			}
		}
	}

	
}

int main()
{
	int n,data[201];
	int i,j,k;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0;i<=n;i++)
			scanf("%d",data+i);
		connie(data,n);

		printf("%d\n",result[0][n-1]);
	}


}

你可能感兴趣的:(PHP,J#)