返回   cpper编程论坛 > 算法
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2008-01-01
初级会员
 
注册日期: 2008-01-01
帖子: 1
wzzushx 正向着好的方向发展
眨眼 求单支树集的共享树

已知有一个树的集合,其中每个树都是单支树,树上的节点来自于一个节点集合,现给出一个虚拟节点根,树集合中的树为树枝,构造一颗以该节点为根的树,要求树中的节点数最少。(在构造过程中,单支树中的节点可以在树中调换位置,相同的节点可以共享,但不允许加入新的边,除了各树枝连到虚拟根节点的边外)
比如,2个树的集合
树1:1-2-3-4-5-6
树2:4-5-3-7-8
虚拟节点根0
那么构造的树就是
0-3-4-5-1-2-6
-7-8
3、4、5节点发生了共享,使得新树中的节点数只有1+3+3+2=9;而不是没共享的树的节点数1+6+5=12。
求一个算法解决这个问题


再给个例子
1-4-5-6-7
1-2-3
1-2-9-4-5-6-7
1-2-8

依次选最大的共享,得到
1-2-3
-9-4-5-6-7
-8
-4-5-6-7
树中有3+5+1+4=13个节点
而问题的解是
1-4-5-6-7
-2-9
-2-3
-8
树中有5+2+2+1=10个节点

此帖于 2008-01-01 09:08 PM 被 wzzushx 编辑. 原因: 更好的理解问题
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2008-01-20
Elminster 的头像
超级版主
 
注册日期: 2002-09-09
帖子: 1,763
Elminster 正向着好的方向发展
默认 回复: 求单支树集的共享树

这题目看不明白。最后一个例子里面 1-2-9-4-5-6-7 那棵树在最后的解里面怎么包含的?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9。现在的时间是 08:16 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0