摘要:
最近公共祖先(LCA) 倍增算法 建立两个数组: \(dep[u]\)存储\(u\)点的深度; \(fa[u][i]\)存储\(u\)点向上\(2^i\)层的祖先节点\((i = 0,1,2···)\). 1.DFS树,创建ST表 倍增递推:\(fa[u][i] = fa[fa[u][i-1][i- 阅读全文
posted @ 2025-06-16 20:11
_P_D_X
阅读(22)
评论(0)
推荐(1)
摘要:
强连通分量Tarjan算法 USACO06JAN] The Cow Prom S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 强连通:若一张有向图的节点两两可达,则称这张图是强连通的 强连通分量\((SCC)\):极大的强连通子图 Tarjan算法 时间戳\(dfn[x]\): 阅读全文
posted @ 2025-06-16 20:10
_P_D_X
阅读(13)
评论(0)
推荐(0)
摘要:
最小生成树(MST) Prim算法 \(e[u]\)存\(u\)点的所有邻边的终点和边权 \(d[u]\)存\(u\)点与圈外邻点的最小距离,\(vis[u]\)标记\(u\)点是否出圈 基础版本 算法流程类似于Dijkstra算法,不断选距离最小的点出圈,直到圈内为空 初始化,所有点都在圈(集合) 阅读全文
posted @ 2025-06-16 20:09
_P_D_X
阅读(21)
评论(0)
推荐(0)
摘要:
拓扑排序 给定一张有向无环图,求出关于顶点的一个排序\(A\),满足:对于图中的每个有向边\((x,y)\),\(x\)在\(A\)中都出现在\(y\)之前,则称\(A\)是该图顶点的一个拓扑序 拓扑排序可以 判断有向图中是否有环 生成拓扑序列 Kahn算法 \(e[x]\)存点\(x\)的邻接点, 阅读全文
posted @ 2025-06-16 20:08
_P_D_X
阅读(18)
评论(0)
推荐(0)
摘要:
最短路算法 BFS BFS本身就是最短路算法,适合无权值的无向图 Dijkstra 基于贪心思想的单源最短路算法 \(e[u]\)存节点\(u\)的所有出边的终点和边权; \(d[u]\)存\(u\)到源点\(s\)的最小距离,初始化时,\(d[s]=0,d[u](u\neq s)=INF\); \ 阅读全文
posted @ 2025-06-16 20:07
_P_D_X
阅读(20)
评论(0)
推荐(0)
摘要:
转载出处董晓老师 1.邻接矩阵 二维数组\(w[u][v]\)存储点\(u\)到点\(v\)的边权 时间复杂度:\(O(n^2)\) 空间复杂度:\(O(n^2)\) 应用:稠密图以外基本不用 (1)加边操作 void add(int a, int b, int c) { w[a][b] = c; 阅读全文
posted @ 2025-06-16 20:04
_P_D_X
阅读(10)
评论(0)
推荐(0)
摘要:
堆(heap),stl里的priority_queue,模板如下: #include<iostream> using namespace std; //堆:完全二叉树 //小根堆:父节点<=子节点 //大根堆:父节点>=子节点 const int N = 1000010; int a[N], cnt 阅读全文
posted @ 2025-06-16 19:39
_P_D_X
阅读(10)
评论(0)
推荐(0)

浙公网安备 33010602011771号