图论初步
简单的图论算法及例题
蒟->zhuqm<-蒻
这个作者很懒,什么都没留下…
展开
-
生成树--kruskal
引入 现在有一个联通图,有N个点,M条边,并且会有重边,求可以使任意两点都联通的边的最小/最大权值。 其实这个问题就是求最小/最大生成树。下面以最小生成树为例,作一下分析。 第一,其实我们可以用贪心的思想,要权值和最小,则每条边就要最小,所以我们可以先把边权排个序。 第二,要任意两点都联通,有些边就不能不选,如果这条边的两个端点还未连接就必须要选了。 但不是要边权最小吗?我们是先排了序,所以答案一...原创 2020-03-17 21:45:53 · 132 阅读 · 0 评论 -
并查集
引入 一些问题中,会询问多个量的关系,并且量与量还有传递性,如果我们需要把两个量联系起来,就需要使用并查集了。并查集是靠维护树来实现的。我们知道,在树中,若X能到Y且Y能到Z,则X能到Z,也具有传递性。那么如果A与B有联系,就可以在AB之间建立一条边。在询问关系时就看AB两棵树的根节点相不相同即可。 但是会一个问题,我们要频繁的查找根节点, 例题 ...原创 2020-03-16 22:23:49 · 186 阅读 · 0 评论 -
分层图
引入 在有一些图论问题中,图是动态的,或是有多个阶段的,这时我们就需要把图分层。 分层的方法有两种:dp和 增加图中的点。但加点空间要大一点,代码少一点。 两者是可以互换的。 例题1(dp实现) P4822 [BJWC2012]冻结 分析 像dp一样,先后求出用1,2,3…k次卡片的时间。只不过用spfa实现。 代码 #include<bits/stdc++.h> using name...原创 2020-03-14 18:21:24 · 179 阅读 · 0 评论