![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左偏树
qq_38232157
这个作者很懒,什么都没留下…
展开
-
洛谷 P1456 Monkey King(左偏树)
左偏树 本题要点: 1、首先,每一个节点里需要加入指向父节点的下标 fa。 2、这里的左偏树根节点是最大元素, merge 函数里面, if(tree[x].val < tree[y].val) // 根节点是最大元素,这里是小于号 swap(x, y); 3、然后每一查找到 点x所在的左偏树的根节点 fax, fax 的 val 减半, 这时候需要调整 fax 的位置: 先合并 fax 的左右孩子 merge(tree[fax].lc, tree[fay].rc) (假设为newtree),原创 2020-09-20 12:45:03 · 97 阅读 · 0 评论 -
洛谷 P3377 【模板】左偏树(左偏树模板, 模板题)
左偏树模板,并查集 本题要点: 1、题目模拟了左偏树的 合并,删除最小元素的操作。还要查询每一个节点所在的左偏树的根节点, 这样需要在结构体 添加每一个节点的父节点下标 fa。 然后在合并 操作时候,维护好 fa 的指向。 查询某节点 所在的左偏树的根节点, 类似于并查集的 get 操作,并且需要压缩路径。如果不压缩路径, 最后一个测试点TLE. 2、删除左偏树的根节点x, 需要把 tree[x].val = -INF, 然后x点的fa 指向其左右孩子合并后的根节点, tree[x].fa = merge(原创 2020-09-20 10:50:57 · 77 阅读 · 0 评论