切割树 treecut ---题意简述3.pptVIP

  • 57
  • 0
  • 约2.59千字
  • 约 10页
  • 2018-07-23 发布于江苏
  • 举报
切割树 treecut ---题意简述3

切割树 treecut ---题意简述 ??有一个N个节点的无根树,各节点编号为1..N,现在要求你删除其中的一个点,使分割开的连通块中节点个数都不超过原来的一半。? 数据范围 ?? 1 = N = 10,000 切割树 treecut ---分析 ??数据结构--树的表示:? ?? 1) 由于1 = N = 10,000,比较大,不适合用 邻接矩阵(?) 2)用邻接链表 ?算法 --树的递归处理: DFS 切割树 treecut ---分析 ??分割节点的判断: 各分枝的节点个数都不超过原来的一半 不能从每个节点为根,DFS一次。 这样为O(N2)复杂度,超时。 如果从任意一节点为根DFS,能否计算出每个节点的各个分枝的节点数呢? 切割树 treecut ---分析 如果从任意一节点为根DFS,子树的节点数DFS返回时自然都知道,连向“父节点分支” 的节点数呢? 切割树 treecut ---分析 由于节点总数是一定的=N,知道所有子树的节点数,自然可计算出“父节点分枝”的节点数! F[父节点] = N – 1 – ∑F(子节点) 切割树 treecut ---参考程序 type Tnode = record //数组模拟指针的链表节点 v, next :integer; end; var p:array[1..20010]

文档评论(0)

1亿VIP精品文档

相关文档