随笔分类 - 图论
摘要:1. 二分图的概念 二分图,又称二部图,英文名叫 Bipartite graph。 如果一张无向图的 \(N\ (N≥2)\) 个节点,可以分成 A、B 两个非空集合,其中 \(A∩B=Φ\),并且在同一集合内的点之间都没有边相连,那么称这张无向图为一张二分图。A、B 分别称为二分图的 左部 和 右
阅读全文
摘要:给定一个 DAG(有向无环图),如果从 \(u\) 到 \(v\) 有边,则认为 \(v\) 依赖于 \(u\)。如果 \(u\) 到 \(v\) 有路径(\(u\) 可达 \(v\)),则称 \(v\) 间接依赖于 \(u\)。我们将图中的顶点以线性方式进行排序,使得对于任何的顶点 \(u\) 到
阅读全文
摘要:最小生成树 \(n\) 个点用 \(n-1\) 条边连接成一个连通块,形成的图形只可能是树 一个有 \(n\) 个点的连通图,边一定是大于等于 \(n-1\) 条的。图的最小生成树,就是在这些边中选择 \(n-1\) 条出来,连接所有的 \(n\) 个点。这 \(n-1\) 条边的边权之和是所有方案
阅读全文
摘要:最短路 Floyed 时间复杂度:\(O(n^3)\) 标准弗洛伊德算法,三重循环。循环结束之后 \(dis[i][j]\) 存储的就是点 \(i\) 到点 \(j\) 的最短距离。 需要注意循环顺序不能变:第一层枚举中间点,第二层和第三层枚举起点和终点。 题目多数时间限制为 \(1s\),因此一般
阅读全文
摘要:图的存储 邻接矩阵 数据结构 设图的结点个数为 \(n\),定义 \(n\times n\) 的二维数组 \(g[N][N]\),其中 \(g[i][j]\) 表示结点 \(i\) 到 \(j\) 的边权。 对于带权图,\(g[i][j]=\begin{cases}w &边(i, j)的权值 \\
阅读全文
摘要:分析 首先能够一针解决的,肯定是在一个针线两端相连的连通块里,把所有连通块里的针数相加即可。 求连通块用dfs或者并查集即可。由于是二维坐标,还是转换成一维的点的编号比较方便。 下面我们就可以把原图转换成一个无向图,求连通块数。 每个连通块里的真数怎么求? 针的穿入穿出是在结点的位置,对于某一个结点
阅读全文