#左偏

BZOJ1455 罗马游戏 左偏树 可并堆

  n个人,2种操作。  一种是合并两个人团,一种是杀死某一个人团的最弱的人。  左偏树裸题。  直接上板子。 #include<cstring>#include<cstdio>#include<algorithm>#include<cstdlib>#inclu...
代码星球 ·2020-06-27

BZOJ4003 [JLOI2015]城池攻占 左偏树 可并堆

题意有点复杂,直接放原题了。小铭铭最近获得了一副新的桌游,游戏中需要用m个骑士攻占n个城池。这n个城池用1到n的整数表示。除1号城池外,城池i会受到另一座城池fi的管辖,其中fi<i。也就是说,所有城池构成了一棵有根树。这m个骑士用1到m的整数表示,其中第i个骑士的初始战斗力为si,第一个攻击的城池为ci。每个城...

BZOJ1592 POJ3666 [Usaco2008 Feb]Making the Grade 路面修整 左偏树 可并堆

  整条路被分成了N段,N个整数A_1,...,A_N (1<=N<=2,000)依次描述了每一段路的高度(0<=A_i<=1,000,000,000)。FJ希望找到一个恰好含N个元素的不上升或不下降序列B_1,...,B_N,作为修过的路中每个路段的高度。由于将每一段路垫高或挖低一个...

HDU3031 To Be Or Not To Be 左偏树 可并堆

  喜羊羊和灰太狼要比赛。  有R次比赛。  对于每次比赛,首先输入n,m,n表示喜羊羊和灰太狼的这次比赛回合数,m表示一开始有m堆数字。  然后输入m个数,第i个(p[i])表示第i堆里面有多少个数。  接下来的m行,第i行有p[i]个数,分别表示第i堆数有哪些。  然后n回合,灰太狼和喜羊羊大战。  两人轮流操作,...
代码星球 ·2020-06-27

HDU5818 Joint Stacks 左偏树,可并堆

题目传送门-HDU5818  有两个栈,有3种操作。第一种是往其中一个栈加入一个数;第二种是取出其中一个栈的顶端数字;第三种是将其中一个栈的所有元素放入另外一个栈,元素顺序依旧按照加入顺序来放。  写一下左偏树就可以了。  按照进入的时间为权值维护两个大根堆(栈先进后出)。 #include<cstri...
代码星球 ·2020-06-27

HDU1512 ZOJ2334 Monkey King 左偏树

  在一个森林里住着N(N<=10000)只猴子。在一开始,他们是互不认识的。但是随着时间的推移,猴子们少不了争斗,但那只会发生在互不认识(认识具有传递性)的两只猴子之间。争斗时,两只猴子都会请出他认识的猴子里最强壮的一只(有可能是他自己)进行争斗。争斗后,这两只猴子就互相认识。每个猴子有一个强壮值,但是被请出来...

BZOJ1367 [Baltic2004]sequence 堆 左偏树

一个整数Rhttp://blog.csdn.net/u011265346/article/details/46532421我被自己坑死了。左偏树合并:if(a==0||b==0)returna+b;这样是对的。然而:if(a*b==0)returna+b;这样是错的。原因是:a*b会爆int…&helli...

BZOJ2333 [SCOI2011]棘手的操作 堆 左偏树 可并堆

有N个节点,标号从1到N,这N个节点一开始相互不连通。第i个节点的初始权值为a[i],接下来有如下一些操作:U x y: 加一条边,连接第x个节点和第y个节点A1 x v: 将第x个节点的权值增加vA2 x v: 将第x个节点所在...