[2018年最新整理]国家集训队2007论文集7袁昕颢《动态树问题.pptVIP

  • 1
  • 0
  • 约6.99千字
  • 约 74页
  • 2018-04-15 发布于浙江
  • 举报

[2018年最新整理]国家集训队2007论文集7袁昕颢《动态树问题.ppt

[2018年最新整理]国家集训队2007论文集7袁昕颢《动态树问题

Dynamic Trees Problem, and its applications 湖南省长郡中学 袁昕颢 xinhaoyuan[at]gmail[dot]com Overview 动态树问题 给出动态树问题的基本形式. 解决动态树问题 提出新的Rake Compress方法. 动态树问题的应用 用最大流算法来说明动态树问题的应用. Part I. Dynamic Trees Problem Dynamic Trees Problem 动态树问题(Dynamic Trees Problem)是图论中一类非常重要的经典问题. 许多图论算法, 尤其是在线动态算法都将其作为瓶颈问题. 研究和解决该问题具有很高的理论价值和实际价值. 什么是动态树问题呢? Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 形态信息 Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 形态信息 Link(u,v) – 添加边(u,v) Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 形态信息 Link(u,v) – 添加边(u,v) Cut(u,v) – 删除边(u,v) Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 形态信息 Link(u,v) – 添加边(u,v) Cut(u,v) – 删除边(u,v) Find(u) – 找到u所在的树. Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 权值信息 Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 权值信息 路径操作: 对一条简单路径上的所有对象进行操作 Dynamic Trees Problem 维护一个包含N个点的森林, 并且支持形态和权值信息的操作. 权值信息 路径操作: 对一条简单路径上的所有对象进行操作 树操作: 对一棵树内的所有对象进行操作 现有结果 理论补充 对于一个完整的动态树问题, 目前公认的下界是O(log2N) per operation, 并已经被上述方法达到. 但是由于巨大的常数因子, 动态树在实践中并没有发挥应有的作用. 动态树问题仍然没有完美解决, 并且仍然处在热烈讨论中. Part II. Solving Dynamic Trees Problem New Idea 在这里, 我向大家介绍一种新的解决动态树问题的思路. 这种思路简单, 而且, 可以得到效率非常高的具体实现. I. 树, 与其平面刻画. 一棵树的平面刻画, 直观地说就是将一棵树的点和边画在平面上. 边与边仅在顶点处相交. I. 树, 与其平面刻画. 一棵树的平面刻画, 直观地说就是将一棵树的点和边画在平面上. 边与边仅在顶点处相交. 确定一棵树的平面刻画, 等价于确定这棵树的Euler Tour. II. 等价映射 事实上, 所有解决动态树问题的方法, 归根结底都使用等价映射的基本思想. 即, 将任意形态的树(原树)映射到度限制, 深度平均的新树(像树). III. Rake Compress 这里介绍一种Rake Compress[5,6]方法. 即将原树映射到一棵Rake Compress Trees (Abbr. RC Trees). RC Trees由Rake节点和Compress节点组成. 1. Rake Nodes Rake节点i是原树中以某节点为根的有根子树的映射. 1. Rake Nodes Rake节点i是原树中以某节点为根的有根子树的映射. 特别地, 如果该节点仅包含根本身, 那么该Rake节点没有后继(叶子节点). 否则令Next(i)表示i所代表的除了根以外的其它点组成的集合. 2. Compress Nodes Compress节点j, 是原树中以某条路径为根的有根子树的映射. 2. Compress Nodes Compress节点j, 是原树中以某条路径为根的有根子树的映射. 特别地, 如果路径长度为1. 那么该Compress节点没有后继. 否则令Next(j)表示j代表的路径上的非端点集合. 3. RC Trees 对于一个非叶子Rake/Compress节点i, Next(i)非空. 对于每个Next(i)中的元素j. 我们采用如下方法划分节点i: 1’ Rake节点的划分 令r表示i的根. 1’ Rake节点的划分 令r表示i的根. 将路径j?r作为新的Compress节点. 1’ Rake节点的划分 令r表示i的根. 将路径j?

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档