10.23 闲话 图论复习
还有2天就复赛了,现在暂时不知道做啥题了,写一下这两天复习的图论知识。
1.存图方式
(1.) 邻接矩阵
没什么好说的,最简朴的存图方式,一眼就会。
定义矩阵数组 \(a[n][n](n为点的数目数)\) ,\(a[v]=w\) 代表 \(u,v\) 之间存在一条权值为 \(w\) 的路径。
由于采用二维数组存图,导致其在稠密图中服从低下,会有很多空间被浪费掉,限制了其发挥。
(2.) \(vector\)
动态数组存图,比较好写也比较常用的一种方式,定义的话为 \(vectora[n](n为点的数目)\) 对于 \(a=v\) 来说,其代表点 \(u\) 的第 \(i\) 条边的终点是 \(v\) ,若需存储其权值,则需要改变其数据类型,利用结构体类型。
存储权值的方式以及遍历点 \(i\) 的所有出度的方式。
[code]struct node{ int id,w; };vectora[maxn];//向点u压入一条权值为w的通往v的出度a.push((node){v,w});for(int j=0;j |