思维导图 重要概念 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
本单元是基于JML规格来实现对社交关系的模拟和查询,整体架构与设计都是官方给出。在实现过程中,我深感JML是一个非常适合开发的形式化规格语言。尤其对于团队项目的开发,用JML可以清晰规定每一部分的代码要求,程序员在实现时仅需思考在此基础上如何提升性能,而不用为架构设计发愁,体验极佳。 设计策略 由于 ...
分类:
其他好文 时间:
2021-06-02 15:07:31
阅读次数:
0
leetcode1514. 概率最大的路径 首先考虑了dfs,1000节点超时,添加记忆化,5000节点超出空间。 邻接矩阵->邻接表(HashMap<node,HashMap>)解决空间问题 dfs仍然超时。 尝试bfs + 普通队列,结果存在误差:由于多次相乘,导致最终结果精度存在问题。 bfs ...
分类:
其他好文 时间:
2021-05-24 11:11:39
阅读次数:
0
我以前和你一样也是个vectorer,直到我膝盖中了一TLE. Invitation Cards 这道题目,8s的时限,1e6的数据,只不过是跑了两边DIjkstra,vector超时,而向前星只需要2s. 同样是邻接表存图,链式向前星虽然没有vector那么简洁,但是速度会有明显提升,并且许多操作 ...
分类:
其他好文 时间:
2021-04-08 14:03:54
阅读次数:
0
AcWing 848. 有向图的拓扑序列 用BFS来写拓扑,以前还真没想过这个思路 之前用的都是深搜找拓扑序 依然是正常用数组实现一个邻接表,然后用数组模拟队列,从入度为0,即d[i] == 0的点开始搜索 用数组模拟队列的原因是为了最后方便直接输出拓扑序,就不用另开一个数组专门存储了 代码中的几个 ...
1. vector 变长数组,长度根据需要而自动变化的数组。 当普通数组会超过内存的情况,这种情况使用vector会让问题的解决便捷许多。 vector可以用来以邻接表的方式存储图 1.1 vector的定义 定义一维变长数组 vector<typename> name; 这个的typename可以 ...
分类:
编程语言 时间:
2021-01-25 11:02:50
阅读次数:
0
一、两种分层数据模型分层数据(HierarchicalData),比如无限级分类菜单、省市区分级等,类似于树型数据结构,在MySQL等关系型数据库中不能很自然的展示这种父-子关系,通常有两种方式实现,一种是邻接表模型(TheAdjacencyListModel),另一种是嵌套集合模型(NestedSetModel)。邻接表模型,至少有id和parent_id两个字段,通过父级ID(parent_i
分类:
其他好文 时间:
2020-12-23 12:43:50
阅读次数:
0
根据上图, 构造出来的最小生成树的权值和应为 16. 主要部分代码: /** * 将最小生成树保存为邻接表存储的图 MST, 返回最小权重和 * @param Graph * @param MST 即 Minimun-cost Spanning Tree 最下生成树 * @return */ int ...
分类:
编程语言 时间:
2020-11-30 15:25:45
阅读次数:
4
1. 邻接矩阵 //设有矩阵e[n][n],其中n是图中点的数量, //则e[i][j]表示从点i到点j的距离(边的权重) 2.邻接表 因为图可能不是完全的,所以有很多的点之间互相并没有边相连,这种情况下若使用邻接矩阵,无疑会造成空间的浪费。 所以不妨采用列表的方式存储。 可以有两个思路 列表套列表 ...
分类:
其他好文 时间:
2020-11-07 17:29:41
阅读次数:
26
POJ2387 Til the Cows Come Home 题目链接 题意:在一个无向图中,求点 n 到点 1 的最短路径。 用邻接表 dijkstra 即可不需要考虑重边。 #include <iostream> #include <cstdio> #include <algorithm> #i ...
分类:
其他好文 时间:
2020-09-11 14:13:48
阅读次数:
39