![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
farines
这个作者很懒,什么都没留下…
展开
-
RMQ倍增,附赠有趣小故事一发
RMQ-range minimum queryRMQ是一种在线的算法,用来求一个给定区间的最小值,其中预处理的时间复杂度是O(nlogn),而处理每次询问的时间复杂度是O(1)。所以,在问题特别多的时候,RMQ是处理大量询问的不二之选。对于这个算法的实现,需要用到倍增和st表(线段树)的思想。emm,话不多说,先讲小故事吧:在一个遥远的地方,有一片广袤的大森林,这个森林中生活着许许多多的小...原创 2019-08-06 19:09:51 · 229 阅读 · 0 评论 -
二分图辨别
什么是二分图?在图论中,二分图是一类特殊的图,因为它的顶点可以分成两个互斥的独立集的点集U,V(也就是所有的点可以分为两个集合,相同集合中的点互相没有边),使得所有边都是连结一个 U 中的点和一个 V 中的点。顶点集 U、V 被称为是图的两个部分。等价的,二分图可以被定义成图中所有的环都有偶数个顶点。如何辨别二分图给定一个图,使用深度优先搜寻法,可以在线性时间内判断它是否为二分图,并输出一...原创 2019-08-09 19:09:13 · 288 阅读 · 0 评论 -
tarjan求强连通分量
tarjan算法的实现方式 作为一个只进行一次dfs就能找到环并且成功缩点的算法来说,tarjan的dfs还是比较强大的,那么它又具体是怎么实现的呢? 首先,我们需要明白一个时间戳的概念。命名一个记录时间点的变量idx,每dfs找到一个点,就将该点的时间戳赋值为时间节点idx,然后用idx++来模拟“时间流逝”,这样就可以记录下每一个节点被遍历到的次序了。...原创 2019-08-09 22:48:11 · 155 阅读 · 0 评论 -
割点-tarjan
这是一道强连通的模板提,可能在某些方面还没有模板复杂,但对要学习强连通的人来说,这道题可以充分增加他们对强连通算法的认识。题目是这样的(转自洛谷)给出一个n个点,mm条边的无向图,求图的割点。输入格式第一行输入n,m下面m行每行输入x,y表示x到y有一条边输出格式第一行输出割点个数第二行按照节点编号从小到大输出节点,用空格隔开输入输出样例输入 #16 71 21 31 ...原创 2019-08-10 23:20:45 · 259 阅读 · 0 评论