
可并堆
文章平均质量分 75
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2809 APIO2012 dispatching Treap+启发式合并 / 可并堆
题目大意:给定一棵树,选定一棵子树中的一些点,薪水和不能超过m,求点的数量*子树根节点的领导能力的最大值考虑对于每个节点,我们维护一种数据结构,在其中贪心寻找薪金小的雇佣。每个节点暴力重建一定不行,我们考虑可并数据结构,每个节点将子节点的信息直接合并即可可以用启发式合并的Treap,也可以用可并堆今天特意去学了这玩应0.0 先写了左偏树 然后又写了下随机堆…… 后者速度上更快一些原创 2014-10-24 12:05:30 · 1618 阅读 · 0 评论 -
BZOJ 1975 SDOI2010 魔法猪学院 A*k短路
题目大意:给定一个值E 求起点到终点的最多条路径 使长度之和不超过Ek短路的A*算法……每个点有一个估价函数=g[x]+h[x] 其中g[x]是从源点出发已经走了的长度 h[x]是从这个点到汇点的最短路首先先在反图上跑一遍SPFA求出每个点的h[x],然后将源点的g[x]+h[x]加入堆 每次取出堆顶时将堆顶的g[x]向所连接的边扩展 第k次取出汇点即是答案其中有一个剪枝就是当第k+1原创 2014-11-20 13:15:26 · 2248 阅读 · 0 评论 -
BZOJ 1455 罗马游戏 左偏树
题目大意:给定n个点,每个点有一个权值,提供两种操作:1.将两个点所在集合合并2.将一个点所在集合的最小的点删除并输出权值很裸的可并堆 n左偏树就是快啊~#include#include#include#include#define M 1001001using namespace std;struct abcd{ abcd *ls,*rs; int原创 2014-11-04 21:04:48 · 1570 阅读 · 0 评论 -
BZOJ 3011 Usaco2012 Dec Running Away From the Barn 可并堆
题目大意:给定一棵有根树,求以每个点为根的子树中有多少点到它的距离不超过l第一眼是可并堆- - 于是怒写- - 管它正解是啥- -从下到上维护可并大根堆 键值是该点到当前根节点的距离 一旦堆顶剪枝大于l就弹顶时间复杂度O(nlogn)什么?你说将整个堆都加上一个值?打标记不就好了- - 毫无疑问可并堆是可以打标记的- -此外我的随机堆写if(flag^=1)就T写if(ra原创 2015-02-02 20:11:56 · 1446 阅读 · 0 评论 -
BZOJ 2333 SCOI2011 棘手的操作 可并堆套可并堆
题目大意:给定n个节点,每个节点有一个初始权值,维护以下操作:1.合并两个联通块2.某个点权值+x3.某个点所在联通块权值+x4.所有点权值+x5.询问某个点的权值6.询问某个点所在联通块的最大权值7.询问所有点之间的最大权值23333333333333333333333333333333333333333333333333333333333332333原创 2015-03-03 15:58:32 · 1983 阅读 · 0 评论