![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左偏树/可并堆
文章平均质量分 53
wwyx2001
OIer----这条路,仅一人独行
展开
-
[HDU1512]Monkey King(可并堆)
题目:我是超链接题解:可并堆的裸题,这次的操作是合并,删除,插入,插入的话就是把一个点merge到一个堆里,别的都是基本操作了代码:#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N=100005;int f[...原创 2018-04-12 14:38:03 · 209 阅读 · 0 评论 -
[BZOJ3011][Usaco2012 Dec]Running Away From the Barn(可并堆)
题目:我是超链接题解:自底向上维护左偏树(大根堆),每个点的权值是到根的距离 每次对于一个点x,把所有子节点merge到一起就代表这棵子树 如果堆顶的权值差>L就pop,动态地维护size代码:#include <cstdio>#include <iostream>#define LL long longusing namespace...原创 2018-04-12 16:22:51 · 162 阅读 · 0 评论 -
[BZOJ1367][Baltic2004]sequence(可并堆+中位数)
题目:我是超链接题解:这道题让我想起了曲神的胡策,把一堆数字变成一样的数字要的最小代价是什么呢?就是全都变成中位数啦那这个题目是什么意思呢?把一堆数字变成递增的需要的最小代价先考虑z1<=z2<=z3<=...<=znz1<=z2<=z3<=...<=znz_1w[i](w[1]<=w[2]<=...<=w[...原创 2018-04-12 17:49:44 · 172 阅读 · 0 评论 -
[BZOJ1455]罗马游戏(可并堆)
题目:我是超链接题解:最近刚刚合并了一堆东西现在学这玩意不虚这题目描述好血腥啊 其实可并堆就是把堆合并起来,通过并查集维护目前的根节点 合并两个堆的操作就是:根节点放最小的元素,要满足左偏的性质,合并的时候把B和A的右子树合并 弹出最小点并删除的操作:首先最小点就是“代表元素”的权值(目前的根节点),删除的话就是合并现在的左子树右子树,不要现在的根节点而是给他们找一个新爸...原创 2018-04-11 21:34:23 · 158 阅读 · 0 评论