Loading

上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页
摘要: ll ans[100] ,cnt; //拓扑序列及其元素个数 ll deg[100]; //所有点的入度 void topsort() { queue<ll> q; for (int i = 1; i <= n; ++i) if (deg[i] == 0) //寻找最开始入度就为0的点 q.push 阅读全文
posted @ 2021-06-29 10:41 EdisonBa 阅读(39) 评论(0) 推荐(0) 编辑
摘要: Kruskal 前置:并查集 struct node { ll u, v, w; } t[200005]; ll fa[200005], n, m, ans, eu, ev, cnt; inline bool cmp(node a, node b) { return a.w < b.w; } inl 阅读全文
posted @ 2021-06-29 10:40 EdisonBa 阅读(27) 评论(0) 推荐(0) 编辑
摘要: P3379 【模板】最近公共祖先(LCA) 邻接表存图。 struct node{...}; void add(...){} ll dep[500010], fa[500010][23]; ll head[500010], tot; ll n, m, s; ll dep[N], fa[N][25]; 阅读全文
posted @ 2021-06-29 10:37 EdisonBa 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 介绍 我们遇到一些有 \(n\) 个元素的集合应用问题中,当给出两个元素的一个无序对 \((a,b)\) 时,需要快速合并 \(a\) 和 \(b\) 分别所在的集合,并查集就是这样的用于处理分离集合的抽象数据类型。它的作用就是动态地维护和处理集合元素之间的复杂关系。 ### 操作 使用并查集应首先 阅读全文
posted @ 2021-06-29 10:36 EdisonBa 阅读(124) 评论(0) 推荐(0) 编辑
摘要: SPFA SPFA能处理负边权,可以判断负环。也可以求最长路。 最短路 #include <queue> queue<int> q; void SPFA(int s) { fill(dis + 1, dis + 1 + n, 2147483647); //初始边无限大 memset(vis, 0, 阅读全文
posted @ 2021-06-29 10:29 EdisonBa 阅读(26) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 15 下一页