随笔分类 -  数据结构->左偏树

摘要:题目描述: $zhx$有一个棵$n$个点的树,每条边有个权值。 定义一个连通块为一个点集与使这些点连通的所有边(这些点必须连通)。 定义一个连通块的权值为这个连通块的边权和(如果一个连通块只包含一个点,那么它的权值为$0$)。 $zhx$想找一个包含$1$号点的连通块送给他的妹子,所以他希望你求出包 阅读全文
posted @ 2019-01-20 16:23 LiGuanlin 阅读(428) 评论(0) 推荐(0)
摘要:题目描述 题解: 明显的$k$短路问题,这里提供两种方法。 1.$A$*算法 $A$*可以解决一般的$k$短路问题,但是并不如可持久化可并堆优秀。 $A$*的本质是$f+g$,而估价函数可以用终止节点到终点的最短路表示。 所以先反向建图$dij$,然后小根堆跑$A$*即可。 优化一下,总代价/起点终 阅读全文
posted @ 2019-01-20 16:08 LiGuanlin 阅读(248) 评论(0) 推荐(0)
摘要:题目描述 题解: 可并堆优化$dp$。 由于$ans$只由$l$与派遣人数决定,我们可以贪心选取总和$<=m$的人。 有两种选择,一种是维护小根堆,一直$pop$到弹出的总和$>m$; 另一种是维护大根堆,一直$pop$到剩下总和$<=m$; 这两种比较一定是维护大根堆更优,因为每次$pop$后剩下 阅读全文
posted @ 2019-01-20 15:03 LiGuanlin 阅读(104) 评论(0) 推荐(0)
摘要:题目描述 题解:(模板放上即可) 代码: 阅读全文
posted @ 2019-01-20 14:55 LiGuanlin 阅读(116) 评论(0) 推荐(0)
摘要:题目描述 题解: 将所有骑士放在$ci$上,然后树上$dfs$。 每个节点维护一个小根堆,一直$pop$直到$top>=hi$。 然后放加法、乘法标记,将剩下的骑士回溯带回父节点。 代码: 阅读全文
posted @ 2019-01-20 14:54 LiGuanlin 阅读(117) 评论(0) 推荐(0)
摘要:题目描述 题解: 左偏树,一棵向左倾斜的二叉树。 板子: $upd:$ 之前版本被$luogu$数据卡掉了,$get_top$操作是$O(n)$的。(0_0) 更新路径压缩的做法。 首先合并两棵树就并一下,删除操作要求删除堆顶元素。 肯定是不能直接删的。 怎么做呢,合并儿子后将自己的指针指向新的堆顶 阅读全文
posted @ 2019-01-20 14:48 LiGuanlin 阅读(171) 评论(0) 推荐(0)