随笔分类 - 数据结构
摘要:前言 之前见到的一道题,现在有了更优秀的解法。 题意 有一个 个点的无向图,初始没有边,每次加入一条带权边后询问最小生成树权值,无生成树输出 0,加边共计 次。 。 解法 如果对于每次询问都直接做 Prim 最小生成树是可以通过
阅读全文
摘要:前言 研究一下堆。 什么是堆 堆是一种点带权的树,每个节点的权都小于/大于其父亲节点的权。 以下为了方便就只说小根堆了。 堆通常需要支持以下几种功能 : 插入(insert) 查询最小值(min) 删除最小值 (extracy min) 合并(merge) 减小一个元素的值(decrease key
阅读全文
摘要:堆 满足父节点权值总是大于/小于两个子节点的特殊的二叉树. 左偏树 一种能在 时间内合并的堆,优势是稳定且码量小于 Fibonacci堆。 模板题 将结点封装为结构体 : struct Node { int val,ch[2],dist; }T[N];
阅读全文
