在对线段树进行单点修改的时候,每次不修改当前节点,转而新建一个节点。
这样每次修改只会新建个节点,空间上可以接受。
并且可以随时访问历史版本的线段树,有一些奇妙的用途。
按位置建线段树:线段树的第个点表示数组中是什么。
按权值建线段树:线段树的第个点表示值出现了多少次。
然后将数组中的值一个一个添加到线段树中,相当于可以随时访问到
数组的一个前缀中某个值(或者某个值的区间)出现了多少次。
在此基础上,就可以进行区间询问第大了。
最基本的用途是可以询问区间第大,但是也可以处理其他类型的询问