摘要:        
这道题以二叉搜索树为背景,有点像最优矩阵链乘的问题:设f[i][j] 表示元素i到元素j的最优解,设k为i到j元素所形成二叉树的根,则有f[i][j] = min{f[i][k-1]+f[k+1][j]+sum[i][j]-a[k]},这里sum[i][j]为i到j的查找频率之和,a[k]为root的查找频率,因此我们要求所有元素的前缀和,为什么要加sum[i][j]-a[k];因为我们每加一层,相当于加了sum[i][j]-a[k];代码如下;#include<stdio.h>#include<string.h>#define MAXN 260#define INF     阅读全文
        
            posted @ 2012-04-23 14:29
BFP
阅读(394)
评论(0)
推荐(0)
        
 
                     
                    
                 
                    
                 
 
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号