并查集.pptVIP

  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文档。上传文档
查看更多
并查集

安徽省芜湖市第一中学 朱晨光 IOI2006国家集训队论文 数据结构 (2) 北京大学 秦腾 并查集 维护一个等价关系 简单高效 易实现 时间复杂度低 优化 路径压缩 按秩合并 并查集 (cont.) 维护深度 Parity Game 假设存在一个由{0, 1}构成的长度为N的串S[],不断给出如下判定: S[i…j]中含有奇数(偶数)个1 输出最大的M,使得前M个判断不是自相矛盾的 N 1000000000, Query 5000 Parity Game (cont.) 10 Answer = 3 5 1 2 even 3 4 odd 5 6 even 1 6 even 7 10 odd 可以用昨天讲的线段树(树状数组)解决 离散化 麻烦 Parity Game (cont.) 信息“a b even” S[1..a]与S[1..b]中1的个数的奇偶性相同 等价类的选取? 矛盾的判断 奇偶性(Z2)也是环! LCA - Tarjan LCA问题 查询问题的在线算法与离线算法 LCA – Tarjan (cont.) 设树中深度为k的节点v到根的路径为 P = pkpk-1…p1p0, pk = v, p0 = Root 则 LCA(u, v) = pt, t = max{t | u∈Subtree(pt)} LCA(u, v) = P中离u最近的点pt LCA – Tarjan (cont.) 使用DFS遍历整棵树T 访问到点v的时候可以得到根到v的路径P 对于此时所有已经访问过的点u, 维护 LCA(v, u) = H(u) = P中离u最近的点pt LCA – Tarjan (cont.) 怎样维护H? 访问点u的时候,H(u) = u 对于u的子树v,访问完v时有 H(Subtree(v)) = v 需要维护使得H(Subtree(v)) = u LCA – Tarjan (cont.) 应用并查集 访问新点u时,Father(u) = u 访问过子树v时,执行合并Father(v) = u H(w) = FindFather(w) 时间复杂度(O(nα(n)), O(1)) 怎样维护拆分——水管局长 给出一个带权无向连通图,要求支持如下两种操作: 删除一条边 询问两个点之间的连通路径上,权值最大的边最小的那条路径的最大边权值 N 1000 M 100000 Query 100000 Delete 5000 水管局长 (cont.) 假如没有删边 求解“最长最短路径” 怎样处理删边? 水管局长 (cont.) 维护LCA Delete Query 计算距离 计算环 时间复杂度O(QueryN) KMP模式匹配 模式串的Next[]数组 简单高效 只需预处理模式串 “在线” Next[]数组 Next[i]=max{j|S[1..j]=S[(i-j+1)..i]} 用定义求循环节 A是B的循环节当且仅当B = A + C,C是B的前缀。 字典树 多个模式串 同时完成前缀匹配 能不能结合起来呢? 对于多个模式串,同时“KMP”? 确定型有限状态自动机是一个五元组(Q, Σ, δ, q0, F) Q是有限集合,称为状态集 Σ是有限集合,称为字母表 δ:Q×Σ-Q是转移函数 q0∈Q是起始状态 F是接受状态集 Pumping Lemma 给定一个DFA,求出一个串对应该DFA接受状态的串w = abc使得a(b)c也都对应该DFA的接受状态 DFA KMP本质上也是一台DFA 两个DFA(正则语言)的并? 字典树! 建立方法 对于模式串,建立一棵字典树 叶子节点都在接受状态集中 树中已有的边是状态转移函数的子集 怎样添加没有的边? 处理失配情况——KMP的经验! 建立方法 (cont.) 对于某个结点,如果原始字典树中往字母char方向没有边(失配),则它关于接受状态集的性质与该节点去掉第一个字母的char方向孩子相同。 Next[]数组——后缀是前缀 怎样找到后缀对应的点? 后缀若是也没有char儿子怎么办? 建立方法 (cont.) 假设某结点对应的串的最后一个字母是char’ 该节点对应的后缀对应的结点就是其父结点对应的后缀对应的节点的char’儿子 若是没有char’儿子怎么办? 按层次顺序遍历 同时还需更新接受状态集合 建立方法 (cont.) Language Recognition 给一些字符串,要构造一个DFA,使得它接受所有这些字符串,且状态数最少 怎么让状态最少? 回想构造的过程——子树! 判重 DNA Sequ

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档