动态规划的矩阵连乘问题
不知道怎么描述,就是找规律,套公式

import java.util.Scanner;

public class 矩阵连乘 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
	    int n=sc.nextInt();
	    int array[]=new int[n];
	    int arrayA[][]=new int[n][n];
	    int arrayB[][]=new int[n][n];
	    for(int i=0;i<n;i++) {
	    	array[i]=sc.nextInt();
	    }
       int res=solve(array,arrayA,arrayB);
       System.out.println("最少乘法次数:"+res);
       traceback(arrayB,1,n-1);
       
	}

	private static void traceback(int[][] arrayB, int i, int j) {
		if(i==j) {
			return ;
		}
		traceback(arrayB,i,arrayB[i][j]);
		traceback(arrayB,arrayB[i][j]+1,j);
		System.out.println("元素 A"+i+","+arrayB[i][j]+"和元素A"+(arrayB[i][j]+1)+","+j);
		
	}

	private static int solve(int[] array, int[][] arrayA,int arrayB[][]) {
		int n=array.length-1;
		for(int i=1;i<=n;i++) {
			arrayA[i][i]=0;//对角线设置为0
		}
		for(int r=2;r<=n;r++) {//r控制的是行数,用来协调i和j
			for(int i=1;i<=n-r+1;i++) {
				int j=r+i-1;//j最小从2开始
				arrayA[i][j]=arrayA[i+1][j]+array[i-1]*array[i]*array[j];
				arrayB[i][j]=i;
				for(int k=i+1;k<j;k++) {
					int t=arrayA[i][k]+arrayA[k+1][j]+array[i-1]*array[k]*array[j];
					if(t<arrayA[i][j]) {
						arrayA[i][j]=t;
						arrayB[i][j]=k;
					}
				}
				
			}
		}
		return arrayA[1][n];
	}
    
}