精品文档---下载后可任意编辑k 度限制树的构建问题的开题报告1
问题描述在一颗有根树上,每个节点标有一个权值,权值具有可减性质,即若节点 u 的权值为 val_u,那么对于其所有子节点 v_i (i=1,2,
,k),有val_u>=val_v1+val_v2+
+val_vk
现在需要构建一颗有根树,根节点为 1,使得所有叶子节点到根节点的路径上不包含 val 值较大的节点,同时所有非叶子节点的子节点数量不超过 k
讨论意义该问题在树形结构数据的处理中具有广泛的应用,例如在网络结构优化中,需要构建一棵无环树来解决流量最大问题
同时,在计算生物学领域,k 限制树的问题也有一些应用,例如在基因家族重构中,需要将DNA 序列分成若干段,使得每一段序列相似度较高,并且满足序列数的k 限制
解决思路(1)朴素算法一种朴素的实现方式是对于每个叶子节点,从其到根节点的路径上依次选择可以添加为其父节点的所有非叶子节点,选择成功后检查新的父节点是否满足 k 个子节点的限制,并在满足条件时更新树的结构
但是,这一算法效率低下,想要具有更高的性能,需要采纳其他算法
(2)动态规划算法设 f[u][i]表示以节点 u 为根的子树中选取最多 i 个非叶节点所能得到的权值和,则有如下状态转移方程:f[u][i] = max(f[v1][j1] + f[v2][j2] +
+ f[vl][jl]), 其中j1+j2+
+jl = i-l (l