码迷,mamicode.com
首页 >  
搜索关键字:可并堆    ( 155个结果
【BZOJ4003】【JLOI2015】城池攻占 可并堆
题解: 傻题随便上数据结构都能搞过。 可并堆或者启发式合并splay都可以。 考试时状态太差一个裸模板启发式合并splay调了3h最后还爆零了Qwq、 200行!!!!!! 然后可并堆又快又短,细节又少(然后特么也全都是模板内容,一点非模板代码都没有……),完虐启发式合并。 另外这道题可以用 f(i,j)f(i,j) 表示 从点 ii 到其第 2j2^j 个父亲需要的最小战斗力,这种做...
分类:其他好文   时间:2015-04-21 16:15:00    阅读次数:226
【BZOJ1455】罗马游戏 可并堆
题解: 可并堆: 其实它只是个函数,而不是数据结构,它的数据结构只是“堆”? 可并的随机堆才算一个? 两个堆合并时,对比大小决定谁是父亲,然后劣的和优的 的子再递归进行比较,直到一头为空(无法也不用再比较时),能满足正常插入就可以保证二叉的性质时停止。 代码: 可并随机堆(随机挂到某子上) #include #include #include #include #define...
分类:其他好文   时间:2015-03-21 11:23:41    阅读次数:188
【HDOJ】【1512】Monkey King
数据结构/可并堆 啊……换换脑子就看了看数据结构……看了一下左偏树和斜堆,鉴于左偏树不像斜堆可能退化就写了个左偏树。左偏树介绍:http://www.cnblogs.com/crazyac/articles/1970176.html体会:合并操作是可并堆的核心操作(就像LCT里的access),进....
分类:其他好文   时间:2015-03-15 19:46:37    阅读次数:165
BZOJ 2333 SCOI 2011 棘手的操作 可并堆
做此题的原因 题号美 题目大意给出一个序列,支持一堆操作(具体看下面)。让你维护它。思路U x y:我们需要可并堆来将两个堆合并。 A1 x v:将这个点从堆中拽出来,改了之后再合并回去。 A2 x v:在堆顶打标记。 A3:记录一个全局变量记录。 F1 x:将这个点到堆顶的链上的所有标记下传,之后返回自己的大小。 F2 x:返回堆顶。 F3:用一个堆(set也行)维护所有堆顶的元素。需...
分类:其他好文   时间:2015-03-05 14:54:05    阅读次数:158
BZOJ 1455 罗马游戏 可并堆
题目大意给出n个人的权值,每次要求将两队人合成一堆,或者杀掉一堆人中的权值最小的那个人。问每次删除的人的权值是多少。思路就是可并堆,没了。我挑最简单的随机堆写的。CODE#include #include #include #include #define MAX 1000010 using namespace st...
分类:其他好文   时间:2015-03-05 08:05:55    阅读次数:164
BZOJ 2333 SCOI2011 棘手的操作 可并堆套可并堆
题目大意:给定n个节点,每个节点有一个初始权值,维护以下操作: 1.合并两个联通块 2.某个点权值+x 3.某个点所在联通块权值+x 4.所有点权值+x 5.询问某个点的权值 6.询问某个点所在联通块的最大权值 7.询问所有点之间的最大权值 2333333333333333333333333333333333333333333333333333333333333 2333...
分类:其他好文   时间:2015-03-03 16:42:54    阅读次数:152
BZOJ 3011 Usaco2012 Dec Running Away From the Barn 可并堆
题目大意:给定一棵有根树,求以每个点为根的子树中有多少点到它的距离不超过l 第一眼是可并堆- - 于是怒写- - 管它正解是啥- - 从下到上维护可并大根堆 键值是该点到当前根节点的距离 一旦堆顶剪枝大于l就弹顶 时间复杂度O(nlogn) 什么?你说将整个堆都加上一个值? 打标记不就好了- - 毫无疑问可并堆是可以打标记的- - 此外我的随机堆写if(flag^=1)就T写if(ra...
分类:其他好文   时间:2015-02-02 23:16:51    阅读次数:235
算法模板——左偏树(可并堆)
实现的功能——输入1 x,将x加入小根堆中;输入2,输出最小值并去在堆中除掉 1 var 2 i,j,k,l,m,n,head:longint; 3 a,lef,rig,fix:array[0..100000] of longint; 4 function min(x,y:longint...
分类:编程语言   时间:2015-01-19 23:24:43    阅读次数:257
BZOJ 1455 罗马游戏 左偏树
题目大意:给定n个点,每个点有一个权值,提供两种操作: 1.将两个点所在集合合并 2.将一个点所在集合的最小的点删除并输出权值 很裸的可并堆 n 左偏树就是快啊~ #include #include #include #include #define M 1001001 using namespace std; struct abcd{ abcd *ls,*rs; int...
分类:其他好文   时间:2014-11-04 22:52:01    阅读次数:241
BZOJ1455 罗马游戏
支持合并,删除最小值操作的不就是可并堆吗。。。还要窝有板子,液!这题还要注意,对于一个点,找根的话,要用到并查集。 1 /************************************************************** 2 Problem: 1455 3 ...
分类:其他好文   时间:2014-11-01 11:23:16    阅读次数:257
155条   上一页 1 ... 13 14 15 16 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!