2014.07.07 15:47简介: 给定N个矩阵,A1、A2、...、An,如果相邻矩阵的维度都满足相乘条件,如何组织这n-1次乘法的顺序,使得总共的乘法次数最少?描述: 根据矩阵乘法的定义,如果矩阵X的维度是aXb,矩阵Y的维度是bXc。那么XY相乘需要的乘法次数是aXbXc。 这道题目...
分类:
编程语言 时间:
2014-07-09 21:05:55
阅读次数:
284
2014.07.04 18:24简介: 给定一个有向图,你可以认为每条边长度都是1(所以叫无权值)。下面的算法可以求出从特定的起点到终点的最短路径长度。描述: 从起点出发,根据当前顶点出发的边进行广度优先搜索,直至找到终点即可。如果搜索结束了仍然没有找到终点,那么起点无法到达终点。实现: 1 /.....
分类:
编程语言 时间:
2014-07-06 19:15:17
阅读次数:
255
2014.07.04 17:23简介: 我们考虑一种特殊的图: 1.有向图 2. 只有一个连通分量 3. 不存在环 那么这样的图里,必然可以找到一种排序方式,来确定谁在谁的“前面”。 简单的来说可以这么理解:如果存在一条边a->b,那么a顶点就在b的前面。 下面我们通过例子...
分类:
编程语言 时间:
2014-07-06 18:55:10
阅读次数:
183
2014.07.04 18:32简介: 给定一个有向图,边的权值可能各不相同(不包含负权值)。给定一个起点s,找出起点到所有顶点的最短路径距离。描述: 这就是Dijkstra算法的用武之处了。 实际上,如果从无权值的情况出发,来思考带权最短路径问题的解法,那么应该只需要修改几行之前BFS的代码...
分类:
编程语言 时间:
2014-07-06 18:52:39
阅读次数:
255
2014.07.04 19:34简介: 给定一个带权图(有向无向皆可),找出每个顶点到其他所有顶点的最短距离。描述: 此处介绍O(n^3)级别的Floyd算法,只需要用三层循环的简单代码就完成所有最短距离的计算。唯一需要注意的,就是三层循环里i、j、k的摆放顺序。 代码非常简单,所以无需多作解...
分类:
编程语言 时间:
2014-07-06 18:47:25
阅读次数:
151
2014.07.04 20:43简介: 给定一个有向图,如果每一条边u->v代表一根水管,定义能从u流向v的最大水流量。那么选定起点s和终点t,如果让水从s流入,从t流出,最多能达到多少流量而不挤爆水管?图示: Capacity是容量的意思,那么我们用C(u, v)来表示u->v这条边,也就是u.....
分类:
编程语言 时间:
2014-07-06 17:16:55
阅读次数:
260
2014.07.04 23:03简介: 给定一个无向带权连通图(三个条件),选出n-1条边将这n个顶点连成一棵树,使得这棵树的权值之和最小。描述: 本次使用Kruskal算法来解决这个问题。 如果有n个顶点的话,我们需要n-1条边来拼成一棵树。 Kruskal算法的基本思路,是每次拼上一条边...
分类:
编程语言 时间:
2014-07-06 17:07:20
阅读次数:
245
2014.07.04 22:42简介: 给定一个无向带权连通图(三个条件),选出n-1条边将这n个顶点连成一棵树,使得这棵树的权值之和最小。描述: 本次使用Prim算法来解决这个问题。Prim算法的思想是两点:BFS与贪婪。 我们从一个顶点出发,把这个顶点对应的边加入到优先队列中。既然是优先队...
分类:
编程语言 时间:
2014-07-06 16:49:33
阅读次数:
272
2014.07.04 23:57简介: 这本教材中提到了一个概念,叫关节点(articulation point)。如果从某个无向图里去掉某个顶点以及这个顶点所有的边,如果此时图中连通分量的个数增加了,那么定义这个顶点为“关节点”。更通俗地解释,可以说如果拿走这个顶点,这幅图就破成了好几块,因此这....
分类:
编程语言 时间:
2014-07-06 16:28:12
阅读次数:
287
二叉树的存储结构二叉树的存储可分为两种:顺序存储结构和链式存储结构。1.顺序存储结构把一个满二叉树自上而下、从左到右顺序编号,依次存放在数组内,可得到图6.8(a)所示的结果。设满二叉树结点在数组中的索引号为i,那么有如下性质。(1)如果i = 0,此结点为根结点,无双亲。(2)如果i > 0,则其...
分类:
其他好文 时间:
2014-07-03 12:43:35
阅读次数:
288