这次搞清楚了主席树和可持久化线段树的区别,可持久化线段树是基于线段树的,而主席树是基于权值线段树的一种数据结构。本质二者的可持久化对象不同:可持久化线段树持久化值域,主席树维护权值。
主席树非常巧妙,把可持久化线段树修改函数的递归边界改成了左右子节点,从而使每次修改都是从根节点生成一条新的路径,与不牵涉修改的点相连。通过比较新版本的树和旧版本的树的节点插值,根据节点差值决定下一步是向左递归还是向右递归。
这次搞清楚了主席树和可持久化线段树的区别,可持久化线段树是基于线段树的,而主席树是基于权值线段树的一种数据结构。本质二者的可持久化对象不同:可持久化线段树持久化值域,主席树维护权值。
主席树非常巧妙,把可持久化线段树修改函数的递归边界改成了左右子节点,从而使每次修改都是从根节点生成一条新的路径,与不牵涉修改的点相连。通过比较新版本的树和旧版本的树的节点插值,根据节点差值决定下一步是向左递归还是向右递归。