图论
snowwwwi
这个作者很懒,什么都没留下…
展开
-
acm总结——拓扑排序
原理 拓扑排序是用来解决DAT(有向无环图)的问题,对于出的序列并不一定是唯一的。常会被用来解决做存在依赖关系的问题,例如“要做A任务时必须先完成B任务”。其时间复杂度为O(n + m)(n为点的个数,m为边的条数) 代码思路 使用vector来存储图,用一个ind数组代表该点的入度,out数组代表该点的出度,对于一个序列,我们首先遍历每个点,每个入度为0的点塞入队列,用bfs遍历下去,遍历过程中,每遍历一个点便让ind减一,当ind减为0时再塞入队列中。对于最后结果,这个序列的尾就为出度为0的点。原创 2022-03-29 17:27:41 · 204 阅读 · 0 评论 -
acm总结——图论基础
图的类型 1.有向图 2.无向图 3.加权图 图的实现 邻接矩阵 邻接矩阵a[i][j] 代表一个矩阵,其中的i,j代表两条边,其能够实现O(1)的搜索和更新,但其空间复杂度却在O(n ^ 2) 代码实现:略 邻接表 代码实现: #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int e[N], ne[N], h[N], w[N]; int idx; void add(int a,int原创 2022-03-29 15:14:27 · 377 阅读 · 0 评论