摘要: 挺进 题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 假设我们枚举断哪一条边,在logn时间内求出两个联通快的直径(树剖lca) 不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 如何合并呢? 我们假设两块的直径端点分别为 阅读全文
posted @ 2020-08-18 21:13 ke_xin 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 堆 一.堆的性质 堆是一颗完全二叉树 堆顶一定是优先级“最大”,最小” 堆一般有两种——小根堆和大根堆,对于大根堆而言,任何一个非根节点,它的优先级都小于堆顶,对于小根堆而言,任何一个非根节点,它的优先级都大于堆顶 堆一般是用二叉树来实现的 一颗完全二叉树,每个节点有一个权值。 父节点的权值总是大于 阅读全文
posted @ 2020-08-18 16:21 ke_xin 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 分块——优雅的暴力 参考 分块算法的思想是通过适当的划分,预处理一部分信息保存下来,用空间换取时间,达到时空平衡。 分块实现的基本框架: 划分块(一般将其分为$\sqrt n$块,每块也有$\sqrt n$个元素),预处理,操作或查询。 操作或查询通常为4步: 1.判断要操作或是查询的区间是否在一个 阅读全文
posted @ 2020-08-18 10:15 ke_xin 阅读(35) 评论(0) 推荐(0) 编辑