![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左偏树(可并堆)
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ4003 [JLOI2015]城池攻占 解题报告
题目是中文的,也不难理解,懒惰的我就不写大致题意了题解: DFS + 左偏树(可并堆)从根1 DFS下去,到一个节点,先处理完他的所有孩子,然后将孩子节点的左偏树和攻击这个节点的骑士的左偏树合并在一起,小根堆,然后判堆顶的值是不是比这个节点的防御值小,是的话就删掉,维护这个节点和堆顶骑士的答案,直到堆空了或者堆顶的值大于这个节点的防御值,对于攻占这个节点后战斗力的变化,打个原创 2016-09-04 22:06:39 · 793 阅读 · 0 评论 -
BZOJ2809 [Apio2012]dispatching 解题报告
题目是中文的就不给题意了~题解: 忍者组织可以看成一棵树,根是master,题意其实就是要在找到的点的权值和不超过给定的M的情况下,在一棵子树上找尽量多的点使得点的数量×子树的根的L最大,求这个最大值。DFS,对于一个结点,先算完在他孩子的子树找点的最大值,在将他的孩子找到的点合并,如果权值和超过了M,就删掉最大的点,不断操作直到和小于M,然后计算这棵子树原创 2016-09-03 15:05:35 · 848 阅读 · 0 评论 -
BZOJ 1367 [Baltic2004]sequence 解题报告
这题在 CF Round #371 C题 又出了一次,,数据还是这题数据的弱化版,那题n^2的DP可以过,BZOJ上好像还有一题一样的,数据也是弱化的好像,三倍经验。。。题解:左偏树这题的话,是黄源河关于左偏树的那个东西的例题首先假设求的序列不是严格递增,而是非递减,即 z1 考虑一个区间( l,r ),如果区间里的序列 tl 如果区间里的序列原创 2016-09-19 22:36:21 · 987 阅读 · 0 评论 -
关于第k短路的学习(可持久化可并堆) 例题:poj2449
原来做第k短路用的是A*,但是后来发现A*对于k特别大的时候不好用,就去学了一种更高级的算法学习资料:余鼎力写的第k短路和堆的可持久化方法:对于图G,建立一个以终点t为起点的最短路径构成的最短路径树(就是反着跑一遍最短路,然后对于一个不为终点的点v,v到终点t的最短路径上(任选一条)v的后继结点为v的父亲,就形成了一棵树),然后对于所有点,定义其不在最短路径树上的出边的原创 2016-09-08 22:37:34 · 2730 阅读 · 0 评论 -
左偏树 板子
大神说左偏树很有用,就学了下,贴个板子例题:BZOJ1455 罗马游戏code:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2016-09-03 09:58:13 · 550 阅读 · 0 评论 -
Contest Hunter 弱省胡策Round #1 OVOO
求第k小的含1号节点的联通块,可以理解为第k小的点集,对于一个点集,他有两种方式拓展,一个是将他的一个边缘节点替换成点集里其他节点延伸出去的最小的边的tail,一个是在点集里新加入一个边缘节点延伸出去的最小的边的tail。于是我们维护一个点集的优先队列,对于当前的点集按以上两种方式拓展,塞进优先队列里面。怎么才能知道一个点集边缘节点延伸出去的边的最小值呢?可以打一个可持久化的可并堆原创 2016-09-09 21:26:29 · 1163 阅读 · 0 评论