程序设计算法——图论
文章平均质量分 57
图论
Vic.GoodLuck
窗外有风景,笔下有前途!
展开
-
单源最短路
1.单源最短路1.1所有边权值都为正1.1.1 朴素Dijkstra o(n^2)用于边数多 1.1.2 堆优化Dijkstra o(mlogn)用于点数多1.2存在边权值为负 1.2.1 Bellman_Ford o(nm) 1.2.2 SPFA o(m)~o(nm)优化版的bellman2.多源汇最短路 2.1 Floyd o(n^3) 1.朴素dijkstrao(n^2)int g[...原创 2022-02-10 11:55:07 · 98 阅读 · 0 评论 -
多源最短路(Floyd)
【代码】多源最短路(Floyd)原创 2023-01-11 21:27:11 · 40 阅读 · 0 评论 -
最小生成树
最小生成树(无向图)1.Prim o(n^2)用于边多2.kruskal o(mlogm)用于点多1.Prim o(n^2)int g[N][N];//邻接矩阵int dis[N];bool vis[N];void init(){ memset(dis,0x3f,sizeof(dis)); memset(g,0x3f,sizeof(g));} int prim(){ int res=0; for(int i=0;i<n;...原创 2022-02-10 14:11:16 · 160 阅读 · 0 评论 -
SPFA
【代码】负环(SPFA)原创 2023-01-13 11:05:12 · 23 阅读 · 0 评论 -
差分约束(不等式组可行解)
【代码】差分约束(不等式组可行解)原创 2023-01-13 13:51:06 · 32 阅读 · 0 评论 -
最近公共祖先
【代码】最近公共祖先。原创 2023-01-13 14:13:09 · 25 阅读 · 0 评论 -
二分图
1.染色法 判断是否为二分图 对图进行dfs,①若子节点未染色,将其染成和根节点相反的颜色;②若子节点染色且和根节点相同,则判定不为二分图int color[N];//-1未染色 0白色 1黑色void init(){ memset(h,-1,sizeof(h)); memset(color,-1,sizeof(color));} bool dfs(int u,int c)//u结点 c颜色 { color[u]=c; for(int i=h...原创 2022-02-10 14:34:04 · 67 阅读 · 0 评论 -
欧拉路径和欧拉回路
经过, 称为;如果,则称为存在:1.图G是连通的。2.,或者有且存在::每个 :每个节。原创 2023-01-13 14:35:00 · 34 阅读 · 0 评论 -
拓扑排序
【代码】拓扑排序。原创 2023-03-26 20:23:05 · 21 阅读 · 0 评论 -
分层图
[JLOI2011] 飞行路线 - 洛谷原创 2023-04-06 14:08:19 · 24 阅读 · 0 评论 -
割点——有向图点的双连通分量
【代码】割点——无向图点的双连通分量。原创 2023-01-13 14:29:15 · 54 阅读 · 0 评论 -
桥——无向图边的双连通分量
【代码】桥——无向图边双连通分量。原创 2023-01-13 14:25:28 · 21 阅读 · 0 评论 -
Targin缩点
【代码】Targin缩点。原创 2023-01-13 14:18:34 · 53 阅读 · 0 评论