一般地,当某个问题可以用动态规划法求解, 但二维数组中有相当一部分元素在整个计算中都不会被用到。我们就不需要以递推方式逐个计算二维数组中元素, 而采用备忘录方法:
MemorizedMatrixChainMain.c
MemorizedMatrixChainMain.c
#include
<
stdio.h
>
#include < limits.h >
#define LENGTH 6
void MemorizedMatrixChain( int p[], int m[][LENGTH], int s[][LENGTH]);
int LookupChain( int p[], int i, int j, int m[][LENGTH], int s[][LENGTH]);
void MemorizedMatrixChain( int p[], int m[][LENGTH], int s[][LENGTH])
... {
int i, j;
for(i = 0; i < LENGTH; i++)
#include < limits.h >
#define LENGTH 6
void MemorizedMatrixChain( int p[], int m[][LENGTH], int s[][LENGTH]);
int LookupChain( int p[], int i, int j, int m[][LENGTH], int s[][LENGTH]);
void MemorizedMatrixChain( int p[], int m[][LENGTH], int s[][LENGTH])
... {
int i, j;
for(i = 0; i < LENGTH; i++)