思维导图 重要概念 1.假设图中有n个顶点,e条边,则 含有 e=n(n-1)/2条边的无向图称作完全图; 含有 e=n(n-1)条弧的有向图称作有向完全图; 若边或弧的个数 e<nlogn,则称作稀疏图,否则称 作稠密图。 2.假若顶点v和顶点w之间存在一条边,则称顶点v和w互为邻接点; 边(v, ...
分类:
其他好文 时间:
2021-06-02 15:13:04
阅读次数:
0
题意: 有$n$个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小。\(n<=1000\) ##思路: 经典的01分数规划求解最优比率生成树,在此题中稠密图采用暴力Prim求解。 ...
分类:
其他好文 时间:
2021-02-16 12:07:40
阅读次数:
0
朴素版prim算法(适用于稠密图) 时间复杂度:O(n^2) 类比Dijkstra算法:Dijkstra算法是更新到起始点的距离,Prim是更新到集合S的距离 S:当前已经在联通块中的所有点的集合 dist[i] = inf for n 次 t<-S外离S最近的点 st[t] = true 利用t更 ...
朴素Dijkstra算法 时间复杂是 O(n^2+m), n 表示点数,m 表示边数 适合稠密图 #include<cstring> #include<iostream> #include<algorithm> #define mm(a,x) memset(a,x,sizeof(a)) #defin ...
分类:
编程语言 时间:
2020-07-04 11:50:16
阅读次数:
88
1,学习内容小结: 图:(1)存储结构: 邻接矩阵 :适用于稀疏图,顶点较多 & 邻接表 :适用于稠密图,顶点较少或无需记录权值 (2)遍历:深度优先搜索(DFS):类似先序遍历 广度优先搜索(BFS) :类似层次遍历 (3)应用:<1>最小生成树(不是唯一的,但权值一定是一样的;若由程序得出则一定 ...
分类:
其他好文 时间:
2020-06-14 23:53:07
阅读次数:
103
一、本章学习小结 本章学习了图这一复杂的非线性数据结构,图包括有向图和无向图,有向图中又包含始点和终点,弧尾和弧头的概念。两者的本质区别应该是有无序。重点学习了DFS算法和BFS算法实现图的遍历,理解了迪杰斯特拉算法的逻辑思想。 1、图的基本术语(顶点数目为n,边数目为e) 子图、稀疏图和稠密图、权 ...
分类:
其他好文 时间:
2020-06-14 12:51:36
阅读次数:
76
一、思维导图 二、重要概念 1.DFS 时间复杂度为 O(n+e) 。 2.BFS 时间复杂度为 O(n+e) 。 3.最小生成树 1)Prim算法 时间复杂度为 O(n n) ,所以更适用于 稠密图 。 2) Kruskal算法 时间复杂度为 O(elog2e) ,所以更适用于 稀疏图 。 4.最 ...
分类:
其他好文 时间:
2020-05-17 21:45:57
阅读次数:
110
题目大意: 给你一堆三维的点,每个点之间的距离是xy轴的欧式距离,代价是高度,问一颗最优比例生成树。这题是我很早之前做过的了,当初还非常非常菜,给大家看一下我的情况。 当初可真是年少无知啊,这个prim因为是稠密图,所以n方才能求生成树,很神奇啊,稠密图的最小生成树算法居然是o(e)的,不过还是很慢 ...
分类:
其他好文 时间:
2020-05-04 15:20:44
阅读次数:
77
1 typedef char InfoType; 2 //图的邻接矩阵储存方法 3 4 //图的邻接矩阵表示是唯一的 5 //邻接矩阵适合储存边的数目比较多的稠密图 6 //无向图的邻接矩阵是一个对称矩阵 7 //对于无向图,第i行或者第i列非0,非INF元素的个数正好是顶点i的度 8 //对于有向 ...
分类:
编程语言 时间:
2020-04-24 17:32:51
阅读次数:
71
1 //最小代价生成树 2 //prim算法(稠密图):从与这棵树相连的边中选择最短的边,并将这条边及其所连顶点接入当前树中 3 void Prim(MGraph g,int v0,int &sum) { 4 int lowcost[maxsize],visit[maxsize],v;//lowco ...
分类:
其他好文 时间:
2020-04-14 14:07:16
阅读次数:
105