欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《有关树的算法》PPT课件.ppt

    • 资源ID:5529796       资源大小:868.50KB        全文页数:39页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《有关树的算法》PPT课件.ppt

    树,胜利一中 王子昱,概要,定义&性质树的遍历Dfs序,Bfs序&欧拉序LCA问题树形DP*树分治题目选讲,定义&性质,定义(之一):联通、无环的无向简单图每个顶点都是割点,每条边都是割边NOI07 追捕盗贼在树上添加一条边会得到一个环在生成树相关的问题中很有用的性质树是二分图关键字N个顶点,n-1条边的联通图任意两点间有且只有一条路径每个点向东至多连一条边(NOI2008道路设计)Et cetera,树的遍历,深度优先遍历,和图的dfs一致先序遍历,中序遍历,后序遍历DFS序,DFS序,深度优先遍历得到的序列:Dfs(x)list.push_back(x)For every child ch of x:Dfs(ch)List.push_back(x)记录第一次访问和最后一次访问,abeeffbcgghhiicdjjda()()()()()(),DFS序:性质,一棵子树对应一段连续的序列abeeffbcgghhiicdjjda或者是abefcghidja例题给定一棵节点带权的树两种操作A I delta:以I为根的子树内节点权值+deltaQ I:求以I为根的子树的权值和树状数组|线段树维护dfs序,abeeffbcgghhiicdjjda()()()()()(),DFS序:性质,改动一下刚才的代码:Dfs(x)list.push_back(+x)For every child ch of x:Dfs(ch)List.push_back(-x)考虑这个序列从+a到+g的和+a+b+e e+f f b+c+g正负抵消后就是从a到g的路径!,abeeffbcgghhiicdjjda()()()()()(),例题,一棵节点带权的树,两种操作A I delta:点i的权增加deltaQ I j:输出从i到j的路径上点的权值和直接套用刚才的方法?,abeeffbcgghhiicdjjda()()()()()(),例题,反例:从e到c+e e b+ce-c a-e+a-c weighta(+a+b+e)+(+a+b+e e+f f b+c)aQ(u,v)=Q(w,u)+Q(w,v)weightw,W=LCA(u,v)什么是LCA?一会再说树状数组|线段树维护DFS序,abeeffbcgghhiicdjjda()()()()()(),广度优先遍历,图的BFS使用队列BFS序,BFS序,广度优先遍历得到的序列Bfs(x)Que.push(x)While not Que.empty()Y=que.pop()List.push_back(y)For every child ch of yque.push(ch)同一深度的节点形成一个连续的区间Algorithm Engagement 2010 Firm这道题涉及的一些东西超纲了=,abcdefghij,欧拉序列,以根为起点的欧拉回路应用:LCA(最近公共祖先)问题:LCA(u,v)表示u和v的深度最大的公共祖先图中LCA(g,h)=c,LCA(g,j)=a给欧拉序列里的每个点加权,点i的权值是i的深度于是u,v的LCA是欧拉序列中u,v之间深度最小的点证明?,abebfbacgchcicadjda,e.g.abebfbacgchcicadjda0121210121212101210LCA(g,h)=c,树形DP,SPOJ PT07X,树的最小覆盖最小覆盖:选出点集的最小子集使得每条边至少有一个端点在该点集中二分图:转化为匹配f1i表示选择i时,以i为根的子树的最小覆盖;f0i表示不选i时的最小覆盖转移,SPOJ PT07Z,树的最长路一种优美的贪心算法两遍dfs应用了树的独特性质,不可推广DP任意选定一个根最长路一定是从一个点向下扩展出的最长路f和次长路g(如果有)的和只需要维护这两个量就可以了,最长路:推广,求出每个顶点出发的最长路定根之后,计算出从每个点向下的最长路f和次长路g点u的最长路可能是直接向下的(fu),也可能是向上之后再向下(设为hu)怎么计算H?,最长路:推广,树形DP的推广,不一定是在树上进行的DpSDOI2010 Area题意:最大权独立集30%数据:图是一棵树Dp70%数据:图是基环+外向树的结构如果只有环该怎么做?100%数据:仙人掌,树形DP,大多数题目的套路是一样的自底向上自顶向下在状态中维护额外的信息点分治,题目选讲,树网的核NOIP2007,modified,给定一棵边带权的树,求出一条长=W的路径,使得到路径距离最大的点的距离最小N=300000,Next,树网的核Hint,证明:最优方案可以是直径的一段,直径的优美性质,Next,树网的核Solution,求出直径对直径上的点,计算disLeftx=x左端所有结点到x距离的最大值disRightx 同类disDev x=到直径的入口为x的所有点与x距离的最大值枚举+二分或单调队列计算答案O(NlogN)或O(N),Next,SPOJ PT07B,给定一棵树,找到它的最大的满足以下条件的子树:所有度大于2的点至多被两个度大于1的点连接.N=100000,Next,SPOJ PT07BSolution,“毛毛虫”如果毛毛虫没有足?最长路“足”的数目可以被附加到点上!设点u的权值为degu-2去掉所有权=0的点带权最长路,Next,SPOJ PT07F,树的最小路径覆盖选出数目最少的不相交路径,使得每一个节点都在一条路径上N=100000,Next,SPOJ PT07Fsolution,Next,SPOJ PT07I,一棵树上有m个蚂蚁窝蚂蚁i会在时刻Ti从窝Si里出来,以速度vi向窝Sj出发问有多少对蚂蚁在路上相遇M=1000,N=100000,Next,SPOJ PT07Isolution,枚举每对蚂蚁,判断是否相交计算一对蚂蚁路径的公共部分计算一个点到一条路径的“入口”分情况讨论,Next,树分治,超纲了 稍微提一下常见方法点分治边分治块分治(树块剖分)链分治(树链剖分),Next,点分治,选择一个点将无根树转为有根树递归处理去掉根之后的每一棵子树例题给定一棵树,点上带权求出所有长度=k的路径,Next,点分治 Cond,选一个根之后,路径可以分为经过根和不经过根的两种经过根的情况计算出当前子树中所有点到根的距离,用排序+扫描的方法求出和=k的点对数.注意到来自同一子树的点对是不合法的,所以需要减去同一子树里的答案不经过根的情况在子树中递归计算防止退化,根选取为当前子树的重心O(Nlog2N)树形Dp?,Next,边分治,在树中选取一条边将原有的树分成两棵不相交的树,递归处理。刚才的题?,Next,树块剖分,Next,SPOJ QTREE,一棵边上带权的树,两种操作CHANGE I ti 第i条边的权改为tiQUERY a b 求出a到b的路径上权最大的边,Next,SPOJ QTREE,Next,SPOJ QTREE,Query(a,b)While(roota!=rootb)/roota表示a所在树块的根If(deproota deprootb)Res=max(res,dataa)/dataa表示到块根的最大权值A=prerootaElseRes=max(res,datab)B=prerootbWhile(a!=b)If(depa depb)Res=max(res,weighta)/weighta表示a到prea的边权A=preaElseRes=max(res,weightb)B=prebReturn res,Next,Thanks for listening.,Questions are welcome.,

    注意事项

    本文(《有关树的算法》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开