摘要: 题面 这道题咋看都是无法从dp入手,那么就从数据结构入手!; 首先你要会权值线段树和线段树合并。 然后你要知道: 对于任意一个节点,交换左右子树对当前节点和前面的所有节点没有影响。 因为这是前序遍历:根节点->左子树->右子树。可以看到,交换左右子树对前面的节点无影响。 我们清楚,交换子树只会对该逆 阅读全文
posted @ 2019-11-01 20:33 神之右大臣 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 左偏树是用来快速地合并堆的 正常的堆是一颗完全二叉树,我们用笨方法去合并它: 假设我们要将x和y这两个小根堆合并,我们判断一下如果x的堆顶大于y的堆顶,就交换一下x和y,然后继续合并x的某个子孩子和y。 堆被人们所推广的原因就是因为它的时间复杂度比较稳定,根本原因是堆是一颗完全二叉树 但显然的:这样 阅读全文
posted @ 2019-11-01 19:34 神之右大臣 阅读(169) 评论(0) 推荐(0) 编辑