graph-algorithm相关内容

发现穿过节点的一些任意序列的最短路径?

在现在考虑一个相关的问题 - 您将得到一个节点序列u 1 ,U 2 ,...,U K 和想找到最短路径从u 1 为U K 这样的路径通过U 1 ,U 2 ,...,U K 的顺序。显然,这可以通过运行Dijkstra算法,一个用于每一对相邻顶点的k-1个实例中,然后连接的最短路径一起进行。这需要时间O(公里+ K N日志N)。或者,你可以使用全对的最短路径算法,像约翰逊的算法来计算所有的最短路径, ..
发布时间:2015-11-30 16:25:33 C/C++

找到的矩阵(n×n个)的最小总和仅选择一个每行和列中

这是另外一个算法问题,涉及到动态规划 下面的问题: 找到给定的矩阵的最小总和,使得选定的一个每一行和列中 例如: 3 4 2 8 9 1 7 9 5 最小的一个:4 + 1 + 7 我认为解决的办法是网络流量(最大流量/分切),但我认为它不应该是很难,因为它是 我的解决办法:单独为n列表[专栏],列1,列2 ... n列 然后开始点(S) - >列1 - >列2 - > - > ..
发布时间:2015-11-30 16:20:29 C/C++

图行算法

我有一个有趣的图 - 理论问题。我给出一个树T有n个节点和一组边。 T是,当然,无向。每个边缘具有重量,表示多少(至少)倍它必须被访问。我们从节点漫步使用边缘节点,任务是找到所需的步骤最少数量,以满足上述条件。我可以从任何节点开始。 例如,此树(括号内边的权重): 1 - 2(1) 2 - 3(1) 3 - 4(2) 4 - 5(1) 4 - 6(1) 我们需要8个步骤走这棵树。这是 ..
发布时间:2015-11-30 16:17:32 C/C++

什么是不考虑回到出发点旅行商问题(TSP)问题的名字吗?

我想知道什么是TSP问题名称W / O考虑回到起点的方式,什么是算法来解决这个问题。 我看着最短路径问题,但是这不是我所期待的,这个问题只能找到2分配点的最短路径。但我期待的就是这个问题,我们给出n个点和输入只有1个起点。然后,找到所有的旅游点恰好一次的最短路径。 (终点可以是任何点。) 我也看了成汉弥尔顿路径问题,但似乎并没有解决我的定义问题,而是寻找是否有哈密顿路径或不。 请给我建议,谢 ..
发布时间:2015-11-30 16:09:28 C/C++

会议调度算法有重叠时隙

我想要做同样的事情到 解决方案 您可以使用类似于您与Hopcroft - 卡普建议,如果你有某种流量膨胀的添加另一个层面区分时段流量的算法。 所以,你就必须连接到人们的源泉,人们连接到时隙,时隙连接到故障的时间和故障是连接到一个接收器。 要进一步描述的故障,说你有开始时间为10:00,10:15,10:30和10:45时段。时间故障将在15分钟。如果所有的会议是一个小时长则10点时隙将被连 ..

检查是否给定的字符串遵循特定的模式

我的一个朋友刚做了他的采访在谷歌,得到了拒绝,因为他不能给解决这个问题。 我有几天我自己的面试,似乎无法想出一个办法来解决它。 下面的问题: 正在给定的图案,如[A B A B]。您也给予了 字符串,例如“redblueredblue”。我需要编写一个程序,告诉 是否该字符串的给定模式或没有。 举几个例子: 模式:[利群]字符串:catdogdogcat返回1 模式:ABAB]字符 ..
发布时间:2015-11-30 15:57:23 C/C++

在2D位序列查找位的毗连区

问题 我有一点阵列重新presents二维“地图”的“砖”。这个图象提供了比特阵列中的比特的图形示例: 我需要确定多少比特的连续的“区域”的阵列中存在。在上面的例子中,有两个这样的连续的“区”,如这里所示: 瓷砖必须直接位于N,S,E或瓦片W对被认为是“连续的”。对角感人的瓷砖不计。 我有这么远 由于这些位列可以成为比较大的(几MB大小),我特意用任何一种递归在我的算法避免。 ..
发布时间:2015-11-30 15:56:52 C/C++

构造一个最小生成树覆盖的顶点的特定子集

我有一个无向,正边重图的(V,E)的对,我希望有一个最小生成树覆盖的一个子集的 K 的顶点的 V 的。 我不限制生成树的大小的 K 的顶点;而我很清楚的这的* K *顶点必须包含在MST。 从整个MST开始,我可以削减下来的边缘/节点,直到我得到的最小生成树包含所有的 K 的。 我可以用Prim算法来获取整个MST,并开始删除边/节点,而子集k的MST不被破坏;作为选择,我可以用弗洛伊德 - ..
发布时间:2015-11-30 15:55:30 C/C++

如何实现Prim算法与斐波那契堆?

我知道 Prim算法,我知道它的实现,但我总是跳过,我现在要问的一部分。有人撰文指出,Prim算法的实现与斐波那契堆是 O(E + V登录(V) )和我的问题是: 什么是短暂的一个斐波那契堆? 它是如何实现的?和 您如何实现Prim算法与斐波那契堆? 解决方案 一个斐波那契堆是一个相当复杂的优先级队列具有优异的amoritzed在其所有业务渐近行为 - 插入,找到分钟,并减少键都跑在O(1) ..

对象图比较重presentation以邻接表和矩阵重新presentations

我目前正在跟踪史蒂夫Yegge对preparing的技术编程面试建议:在他的上图部分,他说: 有三种基本途径 重新present在存储器的图表(对象 和指针,矩阵和邻接 列表),并且你应该熟悉 自己每次重新presentation和 它的优点和缺点。 矩阵和邻接表重新presentations的利弊CLRS描述,但我一直没能找到比较这些为对象重新presentation资源。 仅仅通过想 ..
发布时间:2015-11-30 15:53:43 C/C++

图形算法的C读网格到数组

我需要阅读一些物体console.It有点像战舰比赛C写的。 想到这我的6x6 array.I的平台正在采取从用户的用户输入和字符“X”表示这是在二维array.I阴影区正在分配的字符为36 place.The例子用户阵列后给出的输入是; 0,0 0,6 X XXX X X XX X X 6,0 6,6 抱歉输出不是太clear.It是X的输出碳化该用户 ..
发布时间:2015-11-30 15:45:56 C/C++

所有图中的2个节点之间的路径

我必须做出一个不知情的搜索(广度优先搜索)程序,它有两个节点,并返回它们之间的所有路径。 公共无效BFS(NOD的开始,结束点头){ 队列<点头>排队=新问答其中,点头>(); queue.Enqueue(开始); 而(queue.Count!= 0) { ..
发布时间:2015-11-30 15:34:19 C#/.NET

近似​​算法在网格不相交的路径

我最近碰到了这个问题,我想我可以在这里分享一下,因为我是不是能够得到它。 我们给出一个5 * 5格从1-25编号,和一组5对点,即是对电网的路径的起点和终点。 现在我们需要找到的5对点,使得没有两个路径应重叠5相应的路径。另外请注意,只有垂直和水平移动是允许的。 同时合并5路径应覆盖整个电网。 例如,我们给该货币对点为: P = {1,22},{4,17},{5,18},{9,13},{ ..
发布时间:2015-11-30 15:25:21 C/C++

找到路径与图中最大最小容量

我帮助与工作有关的项目,其中,他需要计算从节点的最大容量到节点b,其中该边缘具有容量的朋友。然而,在从a到b的路径的最大容量是由具有最低容量的边缘限定。 让我尝试用一​​个简单的示例来解释 因此​​,图是一个有向图加权的边缘,并且它可以是环状的。具有最高容量的路径将是S-> B-> T和有250的能力,因为该边缘设置限制。 我已经做了一些阅读和发现,这类问题是“最宽的路径问题” 或我称之为像 ..
发布时间:2015-11-30 15:23:50 C/C++

算法,第4版 - 贝尔曼福特队列根据来自塞奇威克和韦恩的方法

我在学习基于队列的办法为 Bellman-Ford算法​​对于单一来源的最短路径罗伯特·塞奇威克和凯文韦恩 - 算法,第4版 来源$ C ​​$ C从书的算法是present这个链接的http:// algs4.cs.princeton.edu/44sp/BellmanFordSP.java 。 我有两个点,一个是怀疑,另一个是code改进建议。 在按照上面的方法是code的放松方法,放松 ..
发布时间:2015-11-30 15:23:24 C/C++

算法生成一个无向图与路径的所有节点,最大程度?

我试图产生无向图中,每个节点具有与其相关联的最大程度。也就是说,如果一个节点具有2的最大程度,它可以连接到最多两个节点(连接在节点将被允许,但不为0)。我的问题是,我试图生成一个曲线图中,它可能获得从一个节点到另一个节点。目前,我可以有节点“随机”连接到一个其它的,但问题是,其可以创建分割图形,即,如果你有10个节点,那么有时无意中两个图的5个节点每形式。如果有人知道的一个有效的解决方案,我很乐意 ..
发布时间:2015-11-30 15:22:21 C/C++

使用BFS或DFS,以确定在非连通图的连通性?

如何才能使用的 BFS或DFS 算法,我可以设计一个算法,确定非连通图连接组件,该算法必须能够为表示组中的每个连接元件的顶点 这是我的aproach: 1)初始化所有顶点未访问。 2)做图的从任意顶点v启动DFS遍历。 如果DFS遍历没有访问所有顶点,然后返回false。 3)反转所有弧(或发现转或逆转图形) 4)标记所有顶点未访问的反转图形。 5)不要颠倒图来自同一个顶点v启动D ..
发布时间:2015-11-30 15:19:58 C/C++

子图枚举

什么是一个高效的算法父图的所有子图的枚举。在我的特定情况下,父图是一个分子图,并因此将被连接,并且通常包含少于100的顶点。 编辑:我感兴趣的只是连接的子图。 解决方案 这个问题已经在接受答案的这个问题。它避免标志着@ ninjagecko的回答“您填写上面的函数”的计算复杂的一步。它可以用在这里有几个环的化合物有效的处理。 请参阅链接的问题的全部细节,但这里的摘要。 (N(V)表示一组顶 ..
发布时间:2015-11-30 15:19:29 C/C++

的边缘在Dijkstra算法松弛

这是什么 边的放松 的意思是图论的背景下?我碰到这个,而在Dijkstra算法单源最短路径学习了。 解决方案 这里的一个这也解释了缓和的概念的算法很好的说明。 的“松绑”的概念来自于估值之间的类比 最短路径和一个螺旋拉伸弹簧的长度,其中的 不用于COM pression。最初,最短成本 路径是高估了,比做伸出来的春天。由于短 路径被找到时,估计的成本降低,并且弹簧是 轻松。最终,最短路径 ..
发布时间:2015-11-30 15:18:16 C/C++

一个有趣的图形任务

目前有n个顶点的树。要求我们计算一个多集的S最小尺寸例如为每个边(u,v)的树中的以下中的至少一个成立: U&的;小号 V&中;小号 有至少两个顶点S中,其每一个是相邻的U或V S是一个多集,一个顶点可以是S中多次。 我的预感是如下。首先,我们考虑到以下事实:在最优解每个顶点S中最多两次。因此,我们可以在后序遍历树,并计算结果为3的情况下一个顶点不在最佳S,它在一次和它的在两次 不幸的是我 ..
发布时间:2015-11-30 15:14:37 C/C++