Fork me on GitHub
摘要: 动态点分治 先看一道题目 [ZJOI2007]捉迷藏 显然如果不带修改O(N)的树形动规和O(NlogN)的静态点分治都可以切掉这道题 一、点分树 考虑点分治,对于每一个分治区域树的重心的答案只会与其所有子区域树有关,所以我们可以再构建一颗点分树: 在点分治的过程中,我们把每个区域树的重心和其子区域 阅读全文
posted @ 2018-12-03 12:28 Paul·Shi 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 割点的概念 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。 例如,在下图中,0、3是割点,因为将0和3中任意一个去掉之后,图就不再连通。如果去掉0,则图被分成1、2和3、4两个连通分量; 阅读全文
posted @ 2018-12-03 09:50 Paul·Shi 阅读(822) 评论(0) 推荐(1) 编辑
摘要: 【Tarjan】缩点 在一个点N数据极大的图中,直接SPFA或者记忆花搜索时间超限,那么我们可以利用Tarjan缩点来减少N。 举个例子; 如上图:3,6两点为该图中的强连通分量,我们可以将它们看做一个单元点。 怎么缩点呢 我们使用fa[]数组来存每个点所在的强连通分量中时间戳(DFN)最小的点,即 阅读全文
posted @ 2018-12-03 09:48 Paul·Shi 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 【高级数据结构】左偏树 一、左偏树是什么 左偏树的基础——堆 我们曾经学习过基础数据结构之一——堆(heap) 堆支持三种操作(以小根堆为例) 1、查询(query):查询堆中最小的元素 2、删除(del):删除堆中的任意一个元素 3、插入(insert):插入一个新元素 4、维护(modify): 阅读全文
posted @ 2018-12-03 09:45 Paul·Shi 阅读(666) 评论(0) 推荐(0) 编辑
摘要: ISAP算法 一、为什么我们要学习相比EK、Dinic、SAP算法,时间复杂度更低,可以轻松(不加优化,不卡常)过一些数据强力网络流题,如: [题目传送门](https://www.luogu.org/problemnew/show/P4722) 但编程复杂度相差不大,所以在NOIP、NOI、IOI 阅读全文
posted @ 2018-12-03 09:30 Paul·Shi 阅读(540) 评论(0) 推荐(0) 编辑