
图论
文章平均质量分 78
图论
liyuhan2022
这个作者很懒,什么都没留下…
展开
-
拓扑排序
转载:转载博客拓扑排序1、定义 对一个有向无环图(Directed Acyclic Graph简称DAG) G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。 在AOV网中,若不存在回路,则所有活动可排列成一个线性序列,使得每个活动的所有前转载 2020-07-29 11:03:49 · 213 阅读 · 0 评论 -
Floyd算法--最短路径
#include <iostream>#include <cstring>#include <cstdio>#include<algorithm>using namespace std;#define Inf 0x3f3f3f3fint f;int n, m, w;int ma[505][505];int Floyd(){ for(int k=1; k<=n; k++) for(int i=1; i<原创 2020-05-30 10:31:00 · 146 阅读 · 0 评论 -
Prim算法---最小生成树
#include <cstring>#include <iostream>#include <cstdio>using namespace std;#define Inf 0x3f3f3f3fint m;int ma[101][101];int vis[101];int dis[101];int point[101];int sum=0;int Prim(int u){ int tp=ma[u][1]; for(int i=1;原创 2020-05-30 10:30:28 · 142 阅读 · 0 评论 -
Dijkstra算法总结-----最短路径寻找
#include <bits/stdc++.h>using namespace std;#define Inf 0x3f3f3f3fint map_[1001][1001];int vis[1001], dis[1001];int m, n;void Init(){ memset(map_, Inf, sizeof(map_)); for(int i=1; i<=n; i++) map_[i][i]=0;//初始化自己到自己的距离为零 fo原创 2020-05-30 10:30:03 · 210 阅读 · 0 评论 -
Fire! UVA - 11624(大火蔓延的迷宫)
迷宫题目,只不过加上了数个火源,每分钟火源会向相邻的格子蔓延,所以需要进行火源的一个预处理,选出每个格子会着火的时间点,如果joe在这个火源蔓延时间之前到达,可以经过,否则不可以。bfs解决,两个步骤的时间复杂度均为O(RC)。#include <bits/stdc++.h>using namespace std;const int maxn=1e3 + 10;char a[...原创 2020-02-18 11:50:23 · 334 阅读 · 0 评论 -
欧拉回路
图中所有边一次仅且一次行便所有顶点的通路称作欧拉通路。图中所有边一次仅且一次行便所有顶点的回路称作欧拉回路。判断无向图G存在欧拉通路:G为连通图,并且G仅有两个奇度顶点(度数为奇数的顶点)或者无奇度顶点。(1)G仅有两个奇度顶点时,G的欧拉通路以此两个结点为端点。(2)G无奇度顶点时,G必有欧拉回路。判断有向图D存在欧拉通路:D为连通图,(1)图D除两个顶点外,其余顶点的出度与入度...原创 2020-02-16 20:14:34 · 230 阅读 · 1 评论 -
增广路算法-EK(邻接矩阵)
增广路算法求解最大流问题。每一次找到一条从源点到汇点的不包含0流量的路径为一条增广路。从s出发不断找增广路的过程,通过BFS想周围搜索与s直接相连的剩余流量不为0的结点,加入队列,每次从队列中取出一个元素继续向周围查询,直到目标点为t。如果一条道路上不包含流量为0 的水管,则说明是一条增广路,给沿途的所有节点两两之间的剩余流量减去该条增广路的最小流量,同时为他们的反向弧加上最小流量,不断循环直...原创 2020-02-12 17:45:16 · 549 阅读 · 0 评论