模板-图论

图论算法相关模版, 可能有错误, 省选前持续更正中

重要的不是模版内容, 而是提供算法的实现思路.

时间: 2024-08-25 08:35:33

模板-图论的相关文章

模板 - 图论 - 树 - 最近公共祖先

令 $f[i][j]$ 表示 $i$ 的 $2^j$ 辈祖先, $f[i][0]$ 就表示 $i$ 的父节点. 可以得到状态转移方程 $f[i][j]=f[f[i][j-1]][j-1]$ .当没有 $2^j$ 辈祖先时 $f[i][j]=0$ 一遍 DFS 计算即可 void dfs(int u, int father) { dep[u] = dep[father] + 1; // dep[x] 表示 x 的深度,在查询时会用到 for (int i = 0; i <= 19; i++) f[

模板 - 图论 - 基环树

基环树也可以直接套强连通缩点给秒了,但是事实上假如不需要缩点的话有更简单的写法. 下面是一种示例,必须是内向基环树,注意内向基环树的dfs上面有好几个时点: 0.进入环的时候,有时是从入度为0的点进入可能会有特殊操作,但是一般来说进入的时候主要是各个操作的初始化值. 1.当 color[u]!=0&&color[u]==c 时,第一次找到环的入口,可以这时候处理入口的值,但一般只交给3去做就好了. 2.当 color[u]!=0&&color[u]!=c 时,意味着找到其他

模板 - 图论 - 图的存储和遍历

链式前向星法存的带边权的图,(尤其在多组数据时)时间效率比vector略高且节省空间,缺点是不容易对一个点的出边进行排序去重,当平行边无所谓时选择这个方法是非常明智的.链式前向星法存图的最大的问题是要记得给反向边预留空间. 图的存储和遍历,在图中搜索树的父子关系其实一般不是很重要.注意下面的代码是没有对vis进行清空的,因为其实并不是每次搜索前都会需要清空,有时候有一些其他的操作(特别是有向图).需要管边权的去找dijkstra算法就好了. struct Graph { static const

模板 - 图论 - 最近公共祖先 - 倍增算法 - LCA

const int MAX = 100000; vector <int> G[MAXN + 5]; int dep[MAXN + 5], fa[MAXN + 5][20 + 1]; void dfs(int u, int p) { dep[u] = depth[p] + 1; fa[u][0] = p; for (int i = 1; i <= 20; i++) fa[u][i] = fa[fa[u][i - 1]][i - 1]; for(auto &v : G[u]) { i

POJ1966(Cable TV Network)

题目链接:传送门 题目大意:给你一副无向图,求解图的顶点连通度 题目思路:模板(图论算法理论,实现及应用 P396) Menger定理:无向图G的顶点连通度k(G)和顶点间最大独立轨数目之间存在如下关系: 1.若G是完全图,k(G)=|V(G)|-1 2.若G不是完全图,k(G)=min{P(A,B)}  其中A,B不直接相连 #include <iostream> #include <cstdio> #include <cstdlib> #include <cm

题解 P2792 【[JSOI2008]小店购物】

题目链接 Solution [JSOI2008]小店购物 题目大意:有若干件物品,每个物品有一个原价,购买某件物品后可以以更优价购买另一件物品.每件物品有一个需求数目,既不能多买,也不能少买(如果需求\(0\)件你就不能买,哪怕可能使得总价最优) 题目分析:看到题解区巨佬的题解,发现此题有一个绝妙的贪心做法. 对于某件物品,我们怎样使得购买它的代价最小呢?我们可以贪心的在这件物品所有的可行方案(原价与优惠价)里面取最小的,做一次乘法运算即可得出答案 关键是,怎样使得这个贪心是正确的呢?我们发现,

洛谷P3385 【模板】负环 DFS-SPFA 判负环 图论

洛谷P3385 [模板]负环 图论 今天get了 一个 DFS-SPFA 判负环的方法 一般的 BFS-SPFA 判负环 一般就是 不停地做,如果某点第 n+1次加入队列中,那么说明这个图存在负环然而我并不会证明,期望复杂度是 O(kM) k 大约是在 2 左右 但是其实对于一些极限数据,最坏可以把他卡到 O( NM) 额,这就直接炸飞了是不是,而且据说,一些数据比较强的题目,总会想到卡一卡SPFA的, 然后我们换一种思路 因为题目中一定存在一种 负环对吧,所以说假如你某段路径权值和为自然数的时

Dijkstra模板题图论书p133

#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits> #include <string> #include <iostream> #include <map> #include <cstdlib> #include <list> #include <

图论 --- spfa + 链式向前星 (模板题) dlut 1218 : 奇奇与变形金刚

1218: 奇奇与变形金刚 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 130  Solved: 37[Submit][Status][Web Board] Description 奇奇 gigi 奇奇口头禅:别人的失败就是我的快乐! 星座:处女座 生日:8月25日 血型:不明 年龄:2岁 生肖:鸡 身高:120公分 体重:149公斤 职业:机器人 兴趣:周游世界 宠物:变形金刚 最喜欢:充电 最讨厌:拔掉它的电源插头 偶像:科学怪人 语言:中文