可持久化线段树 主席树

2019.11.4 今天总算弄会主席树了,发现确实不难,但是需要跳出常规线段树的思维,特别是处理子树上面
主席树的定义与作用
【可持久化线段树主席树】主席树,也称可持久化线段树,那么什么是可持久化线段树呢,即为一颗记录了所有更新过程的线段树 。能够处理出从第i次更新到第j次更新的线段树变化,具体作用一会见例题 。
主席树的功能
记录所有过程的线段树,按正常思维是需要开O(N*M)这么大的空间的,时间也为O(n*m),n为线段树节点数,m为更新次数,但是使用主席树,就只需要开O(N+MlogN)的空间,时间也是O(n+mlogn) 。具体思想如下
主席树的算法思想
首先,非主席树思维时,我们新建一棵树是这样的
这是一颗新树,然后我们对其(1,1)叶子节点更新,得到下面这样一颗树