理论部分 图的深度遍历和广度遍历都不算很难像极了二叉树的前序遍历和层序遍历,如下面的图,可以用右边的邻接矩阵进行表示,假设以顶点0开始对整幅图进行遍历的话,两种遍历方式的思想如下: 1. 深度优先遍历(depthFirstSearch—DFS) 由初始顶点开始,沿着一条道一直走,当走到走不动的时候, ...
分类:
其他好文 时间:
2019-11-10 15:14:25
阅读次数:
98
一 图的定义 定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 在图中需要注意的是: (1)线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex) ...
分类:
其他好文 时间:
2019-11-10 11:46:00
阅读次数:
90
下午遇到了 LuoguP3597和LuoguP4159 这应该是我在网络流后第二次遇到的拆点。这两道题是结合邻接矩阵和拆点。 邻接矩阵有一个性质:设邻接矩阵A,则在矩阵Ak中,点aij的值表示从点i到j长度为k的通路数量。长度表示边的个数。 P4159 要求的是:在有向图中,从起点到终点的路径权值和 ...
分类:
其他好文 时间:
2019-11-09 23:17:40
阅读次数:
94
1.图的相关概念 图:G = (V,E),集合V中的元素被称为顶点,集合E中的元素是集合V中的某一对顶点(u,v)之间的边。 约定集合V和集合E均为有限集,其规模分别记为n = | V |,e = | E |。 边:顶点之间存在的某种关系就是边。可分为有向边和无向边。若边(u,v)中的顶点u和v的次 ...
分类:
编程语言 时间:
2019-11-09 21:23:06
阅读次数:
85
图着色算法描述: https://www.jianshu.com/p/6a52b390f5fa 给定无向连通图和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的两个顶点有不同的颜色。 这个问题是图的m可着色判定问题。若一个图最少需要m种颜色才能使图中每 ...
分类:
编程语言 时间:
2019-11-04 21:19:38
阅读次数:
77
最短路算法有个基础——————松弛操作(在大多数最短路算法都会涉及) 最短路算法一共有多少种方法我不知道,在这里我只想记录4种: ?Dijkstra:求单源点最短路(不含负边权) ?Bellman-ford:求单源点最短路(可含负边权) ?SPFA(使用队列优化后的Bellman-ford) ?Fl ...
分类:
编程语言 时间:
2019-11-01 22:44:30
阅读次数:
126
本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 floyd算法: 设D[k,i,j]表示“经过若干个编号不超过k的节点” 从i到j的最短路径长度 D[k,i,j]=min(D[k-1,i,j],D[k-1,i,k]+D[k-1,k,j]); 初始为D[0,i,j]=A[i,j];A为邻接 ...
分类:
其他好文 时间:
2019-10-31 13:17:15
阅读次数:
91
题目 现在你总共有 n 门课需要选,记为?0?到?n 1。 在选修某些课程之前需要一些先修课程。?例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 示例 1: 输入: 2, [[1,0]] 输出 ...
分类:
编程语言 时间:
2019-10-27 18:52:31
阅读次数:
99
原创建时间:2017 12 30 21:05:19 简单的SPFA最短路模板,适用于图的边权有负数的情况。 算法实现: 我们用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G。运用动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计 ...
分类:
其他好文 时间:
2019-10-26 20:41:22
阅读次数:
111
// 邻接矩阵的深度和广度优先遍历 #include <stdio.h> #define OK 1 // 执行成功 #define ERROR 0 // 执行失败 #define TRUE 1 // 返回值为真 #define FALSE 0 // 返回值为假 typedef int Status;... ...
分类:
其他好文 时间:
2019-10-22 18:20:38
阅读次数:
70