摘要: 直接看代码似乎更清晰一些 我们一开始要建一棵空线段树,然后一个一个的添加线段树。加入线段树后会是这样: 再加入[1, 至此,裸树就建好了,并且只用了O(nlogn)的空间。 查询的时候存两个点,一开始为两个区间的根结点,两结点的差比大小,两个点要同时往左/右跳。 经典问题,区间第k小: 每个线段树i 阅读全文
posted @ 2019-07-30 18:33 神之右大臣 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 树的重心:对于一颗n个节点的无根树,找到一个点,使得把树变成以该节点为根的有根树时,最大子树的节点数最小,也就是说删除这个点后最大联通块的节点数最小其实求树的重心算是一个比较基础的树形dp。用dp[i]代表以i为根的子树的所有节点个数(包含i节点本身),如果要以i为重心的话,那么其最大子树的节点数就 阅读全文
posted @ 2019-07-30 14:07 神之右大臣 阅读(133) 评论(0) 推荐(0) 编辑