动态树

动态树和树剖都是维护树的信息,
而且动态树听起来就很高档啊。

而且动态树能优化网络流的复杂度,虽然没几个人干怼这么大的代码量来过题目最后的那点分,但还是很资瓷学习一下的。

课件

应该还清楚吧,毕竟是大神的讲解。

Link-cut tree
解决以下问题
维护一个数据结构, 支持以下操作:
1.查询一个点的父亲
2.查询一个点所在的树的根
3.修改某个节点的权
4.向从某个节点到它所在的树的根的路径上的所有的节点的权增加一个数
5.查询从某个节点到它所在的树的根的路径上的所有的节点的权的最小值
6.把一棵树从某个节点和它的父亲处断开,使其成为两棵树
7.让一棵树的根成为另一棵树的某个节点的儿子,从而合并这两棵树
8.把某棵树的根修改为它的某个节点
9.查询在同一棵树上的两个节点的LCA
10.修改以某个节点为根的子树的所有节点的权
11.查询以某个节点为根的子树的所有节点的权的最小值

一个能维护森林的数据结构,tarjan提出。
因为能维护树的结构,大概能完成部分树链剖分的任务。

至于和欧拉系列和树链剖分的差别,在刘汝佳紫书12章有写,下次再搬上来吧。

代码:正在学习码

posted @ 2017-05-26 12:45  rsqppp  阅读(147)  评论(0)    收藏  举报