首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于树形DP(树形动态规划),该怎么处理

2012-12-29 
关于树形DP(树形动态规划)如题,找了两天也没有哪里详细讲这个东西的。。。有哪位高手可以讲解一下。。或者给个

关于树形DP(树形动态规划)
如题,找了两天也没有哪里详细讲这个东西的。。。有哪位高手可以讲解一下。。或者给个链接什么的。。。

树形DP都是二叉树吗?那N叉树怎么办?

在解决这类问题的时候应该怎么建造树呢?如何建立状态转移方程呢?

多谢啦~!
[解决办法]
树形dp不一定要二叉树,主要是注意从叶到根的更新递推关系
上面那个我写个伪代码吧:

int Max_Tree(int root){
   if( tree[root] 为叶子结点 ){
        return key[root];
    }
    int ans=-INF;
    for (node temp=tree[root]的儿子结点){
        int t1;
        if( (t1=Max_Tree(temp)) > ans ){
            ans=t1;
         }
     }
     return ans;
}

调用从根结点开始调用就行
ans=Max_Tree(ROOT);

[解决办法]
楼主可以搜索下 泛化背包  
那个就有树形DP的影子
个人觉得那个弄清楚了树形DP也就会了
[解决办法]
泛化背包  
[解决办法]
我还以为树形DP,说的是可以转化为阵矩乘相关的DP呢

热点排行