摘要: 从任意起点开始,运行一次BFS,得到一个最远点d1,d1即为直径的一点再运行一次BFS,得到一个最远点d2,则d1~d2为树的直径为什么这样是对的?(1)证明d1是树直径的一点a) 若s在直径d1,d2上,则最后一个点必能搜到d1或d2;因为若搜到最后一个点为v,则直径为vd2,与题意不符 b) 若s不在直径d1,d2上,BFS搜到的最远点为v,d1-d2为直径,根据连通图的性质,路径s-v当中必有一点t1,与路径d1-d2相连.根据d1-d2直径定义 d1d2=d2t2+t2d1,且t2d1>=t2t1+t1v,否则直径为d2-t2-t1-v根据v是BFS搜到的最远点,t1v>= 阅读全文
posted @ 2012-05-06 09:05 freewater 阅读(616) 评论(0) 推荐(0) 编辑