随笔分类 - 堆
摘要:"题目链接" 用一个大根堆和一个小根堆维护中位数即可
阅读全文
摘要:黑匣子 题目链接 看到题解中“维护两个堆”,突然想到了这道题的解法 维护两个堆:大根堆h1, 小根堆h2 大根堆里的是最小的i个值,小根堆里是剩下的值 每Add一个值时 插入到小根堆中, 再比较小根堆的最小值与大根堆的最大值 若h2.top()<h1.top() 将两个元素取出,换一下再放进去 需要
阅读全文
摘要:删数问题 题目链接 首先找出最小的k个数:用堆每次取出最小的元素p,将p*2+1和p*4+5压入堆。 贪心求最大数:从前往后找第一个data[j+1]>data[j],删除data[j].(链表应该是比较快的,然而蒟蒻懒得写链表,用了一个数组瞎搞。。不开氧气优化会T一个点)
阅读全文
摘要:单源最短路径 题目链接:https://www.luogu.org/problemnew/show/P4779 直到做了这个题才发现我之前写的堆优化dijkstra一直是错的。。 这个堆优化其实很容易理解,将枚举最小值改为从堆中取出最小值,改变dis时入堆即可 用单调队列维护时必须有两个值:点的编号
阅读全文
摘要:单源最短路(dijkstra算法及堆优化) 弱化版题目链接 n^2 dijkstra模板 毒瘤标准版 题目链接:https://www.luogu.org/problemnew/show/P4779 直到做了这个题才发现我之前写的堆优化dijkstra一直是错的。。 这个堆优化其实很容易理解,将枚举
阅读全文
摘要:合并果子 题目链接 贪心:每次先合并最小的两堆果子 用堆实现 手写堆真恶心。。 STL是个好东西
阅读全文