图论基础0709【信息技术】.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图论基础 (版 刘汝佳 目录 一、宽度优先遍历 二、深度优先遍历 三、最短路问题 四、最小生成树问题 一、宽度优先遍历 例1. 二分图判定 • 给出判断图是否为二分图的线性时间算法 例2. 树的直径 • 一棵树T 的直径定义为结点两两间距离的最 大值. 给出求树直径的线性时间算法 例3. 幼儿园小朋友分组 • 幼儿园里有n个小孩。不幸的是小孩常常打 架。每个小孩有不超过3个仇敌。是否有可 能将所有小孩分成两组使得每个小孩最多 和他的一个仇敌同组? 分析 • 这道题目可以看作是给所有的点黑白二染 色。先给1染黑色,放入队列。每次从队列 中取出一个点,把与其相邻的还未染色的 点染成相反的颜色(因为不同的连通分量 之间互不相干,可以假设所有点构成一个 连通图),这样一次广搜就能给所有的点 一个初始色。如果发现某个点x有两个以上 的仇敌与它染同样的颜色,就把x 的颜色变 一下。如此反复就能求得答案。 • 问题1: 这样变是不是总能得到答案? • 问题2: 这样做的时间复杂度是多少? 重要结论 • 有一个重要的结论:一个点颜色至多变一 下。也就是说不会出现某个点的颜色反复 变的情况。假如这个结论成立,则上面提 出的两个问题都能解决 – 由于不会反复变,在有限步内(至多n步)就 不能继续变了,这时的状态就是答案 – 每个点至多变一次,所以时间复杂度是O(n) 证明 • 我们用广搜给每个点初始色,于是形成了一颗搜 索树,深度为奇数的点染黑色、深度为偶数的点 染白色。如果一个点x存在两个以上的仇敌和它染 同样的颜色,我们称x是一个“坏点” 。 • 任意一个非叶子结点显然不是一个坏点。首先是 根结点R,由于我们采用的是广搜,所有与R有仇 的点都被染成了白色(R是黑色),所以R必然不 是坏点。对于任意一个非根、非叶子结点p ,都存 在一个父亲和至少一个孩子,所以p就至少有两个 仇敌与它染不同颜色;而题目中说每个人至多3个 仇敌,故而与p染同色的p 的仇敌至多一个,因此 p也不是坏点。 • 所以: 坏点必然是叶子结点! 坏点 • 设某个坏点x ,与它染同色的两个仇敌是a,b (显 然a,b都不是根结点)。我们把x反色,就相当于 令x成为a的孩子。需证明x 的颜色不可能再次改变 • x改色的必要条件是a,b 中至少有一个改色。由于 x成为了a的孩子,a不是叶子结点,因此a不可能 在x之前改色,所以必然是b改色。设b的父亲是 t,那么t与x这两个b的仇敌都和b染不同的颜色, 要想使得b改色,必须先把t,x两者至少一个改 色。而t不是叶子结点,所以必须把x改色才有可 能让b改色。 实现 • 归纳:x改色前b要改色;b改色前x要改 色。这显然是一个不可能的任务。于是x 的 颜色不会被第二次改变(具体地说a,b的 颜色也不会改变)。 • 具体实现的时候把所有的坏点放在一个栈 里面,每次取一个点如果还是坏点就反 色,同时考察所有与之相邻的点,看看是 不是变成了坏点,如果是就放入栈中。总 的时间复杂度是O(n)。 二、深度优先遍历 • 新发现的结点先扩展 • 得到的可能不是一棵树而是森林, 即深度优先森林 (Depth-first forest) • 特别之处: 引入时间戳(timestamp) – 发现时间d[v]: 变灰的时间 – 结束时间f[v]: 变黑的时间 – 1=d[v]

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档