题目来源:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1256 一个完全单向的有向图,最少更改多少条边能够从1到N。把原有的边的权值设为0,换方向的边的权值设为1。简历邻接表。add_edge(u,v,0);add_edge(v,u,0);采用....
分类:
其他好文 时间:
2014-08-01 22:57:32
阅读次数:
204
题目大意:给你一个网络组,每台机子与其他机子的关系,让你找到所有的割点,如果没有割点,输出无这道题目就是最直接的求割点问题,我在这里用的是邻接矩阵来存储机子之间的关系割点问题的求解需要对深度优先搜索序数有比较好的理解dfn[]用于存储当前的优先搜索序数,low[]存储当前点通过子节点或是回路所能达到...
分类:
其他好文 时间:
2014-08-01 13:26:51
阅读次数:
220
题目:1308. Dependencies among J思路: 比较简单的一道题,要知道m最早完成的时间,只需要找出所有需要在m之前完成的工作,将它们的完成时间加起来即可。这里使用vector的数组存储每个结点的邻接点,从结点m开始,依次宽度优先搜索m的每个邻接点...数组visited记录每个....
分类:
其他好文 时间:
2014-08-01 12:45:41
阅读次数:
195
第一次使用 队列+邻接表 处理拓扑排序,这里做出详细解释以及结合图标,希望下次能一目了然,也希望能帮到大家...
分类:
其他好文 时间:
2014-08-01 10:54:41
阅读次数:
204
当图中的边数较少时,用邻接表来实现图结构,则会浪费很多内存空间。因此,考虑另一种实现图结构的方法:邻接表。在邻接表中主要有两种节点结构体:...
分类:
其他好文 时间:
2014-08-01 02:26:41
阅读次数:
299
题意:一些牛要去某一点参加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少需要花费多长时间。
思路:从聚会地点返回,相当于是从某一点到其他各个点的最短路径。从牛的家中走到聚会地点,可以把路径反过来变成从聚会地点到各个点的最短路径,两个最短路径值加起来就是每头牛所花费的最小时间,找出最大的即可。
我用了两个邻接表存路径,其实这道题用邻接矩阵存更好做,矩阵横纵坐标翻转就把路径...
分类:
其他好文 时间:
2014-08-01 00:03:40
阅读次数:
269
为了表现图中顶点之间的关联,我们可以使用邻接矩阵来实现图结构。所谓的邻接矩阵,就是一个反应边与边之间联系的二维数组。这个二维数组我们用matrix[numV][numV]表示,其中numV是顶点数。
对于无权图
若顶点Vi和Vj之间有边,则matrix[Vi][Vj]=1;否则matrix[Vi][Vj]=0。
对于有权图
若顶点Vi和Vj之间有边,且权值为weight,则matrix[Vi][Vj]=weight;否则matrix[Vi][Vj]=0或MAXWEIGHT(取最小权值或最大权值)。...
分类:
其他好文 时间:
2014-07-31 23:56:30
阅读次数:
296
如果边权都是1,那么直接对当前的邻接矩阵进行T次自乘,答案就是D[1][n]了。证明:当进行1次自乘时,\(D^{1}_{i,j}\)显然代表从i到j的长度为1的路径条数。假设\(D^{k}_{i,j}\)表示从i到j长度为k的路径条数,那么\(D^{k + 1} = D^{k} \times D\...
分类:
其他好文 时间:
2014-07-30 17:21:44
阅读次数:
190
教训:使用邻接表的时候一定要把邻接表的结构组定义的足够大,不能仅仅等于节点的个数,因为线段的数量往往远超过节点的数量。这个题目是拓扑排序练习,提高下理解。 1 #include 2 using namespace std; 3 struct TOPO 4 { 5 int from,to,ne...
分类:
其他好文 时间:
2014-07-30 00:49:12
阅读次数:
249
首先我们需要熟悉Dijkstra算法的原理:从某个源点到其余各顶点的最短路径,即单源点最短路径。单源点最短路径是指:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径。迪杰斯特拉(Dijkstra)提出了按路径长度递增的顺序产生各顶点的最短路径算法。该算法的基本思想是:(1)设置两个顶点的集...
分类:
其他好文 时间:
2014-07-29 21:15:52
阅读次数:
283