我有一个听起来像这样的问题:一家公司在4个不同的(A,B,C,D)地点有4辆出租车。4个人(W X Y Z)打电话给公司,说他们需要一辆出租车。我需要找到出租车到达他们的人的最快方式,知道一辆出租车只能载一个人,而且每辆出租车都在其目的地和人们的目的地之间分配了一个值。
我正在考虑用所有可能的组合来构建一棵树,例如: AW-BX-CY-DZ或AX-BW-CY-DZ等,并找到每个组合的最小成本,但我需要使用DFS或贪婪的BFS方法来解决这个问题。你知道这是怎么回事吗?我无法想象。
我只想知道如何使用DFS/GBFS解决这个问题。我不知道它将如何进行,也不知道搜索何时结束,因为我正在寻找使用的最小
我有一个关于一个程序的Java算法的问题。我想写一个android程序,提供有关“巴士路线”的信息。程序工作时,用户选择一个汽车站(A站),程序对用户说:“乘4路公交车,然后下车B station.And,乘8路公交车,然后下车C站。”有人知道那个程序算法吗?我能用什么来节省每条公共汽车路线呢?Queue,stack或诸如此类的东西?我可以使用BFS或DFS算法来处理最短的公交线路吗?
Purpose of program;用户如何使用总线找到交通线路。(4路公共汽车不直接到8站,用户需要转乘到B站)
I need to know ;我使用哪种数据结构和最短路径算法。
真的很难搞清楚如何修复我的代码。我知道有明显的错误,因为它没有运行,但我不知道它们到底是什么,或如何着手修复它们。如有任何帮助/见解,将不胜感激。谢谢你!!
struct vertices
{
int value;
int parent;
int visited;
int distance;
};
int BFS(vertices *v, int **adj_matrix, int num_nodes)
{
int target;
int cur_v = 0;
bool found = false;
int steps = 0
我最近编写了一个Java应用程序,它使用最大流来执行图像分割。当节点数量很小时,代码工作得很好,但是当我使用大量节点时,代码工作非常慢。是因为我的算法实现速度慢,还是当节点数和边数较大时,最大流算法的速度较慢是正常的?下面是有关计算最大流量的相关规范。其思想是计算最大流,并得到一个将源s与接收器t分隔开的切分。
// find path from nodeU to nodeV if one exists
public Map<Integer, Edge> BFS_(Integer nodeU, Integer nodeV)
{
Map<Integer, Boolean
我正在尝试用DFS解决8个难题,从这个用BFS实现的代码开始。做这件事最简单的方法是什么?我研究过的所有代码要么是工作的,要么是不完整的,这让我比以前更困惑。
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
class EightPuzzle {
Queue<String> agenda = new LinkedList<String>(); // Use of Queue Implemented using
我有简单的矩阵(矩阵,它代表二维游戏中的地形图,包含ASCII字符,例如'm‘代表山脉,'v’代表河谷,'r‘代表河流),在地图上可能有一条河流,也可能没有河流。河流可以从矩阵的任何位置流向任何位置(并且始终将两个不同部分的地图分开,=>地图上不可能有河流的来源,总是从一端进入而存在于另一端)。如果有河流,如何在两个集群上分离矩阵/地形图?
示例地形
v v v v v v v v r v v v v v
v v v v v m m m r m m m m m
v v v v v m m r r m m m m m
m m v m m m m r r m m m
我是新的图形帧,并试图实现边缘之间。
我尝试使用内置的最短路径函数。它返回从源到目标顶点的距离,但不返回它们之间的实际路径。
产出如下:
| id | name | age | distances|
| g | Gabriel | 33 | [e -> 2] |
有任何方法来获得实际路径而不是距离值吗?
如果有人能告诉我如何在图框架中有效地实现边间性,那就太棒了。
假设您有一个未加权的endt. 和两个顶点start s和问题是计算从s到长度为1、2、3.n-1的t有多少条路径,其中N是DAG中的顶点数。
我的方法:
构建一个大小为d的矩阵N*N,其中d[u][k]是通过精确的k步骤从s到达u的方法的数量,并设置d[s][0] = 1
找到DAG的拓扑排序TS
现在,对于TS中的每个顶点TS
- clone the array `d[u]` as `a`
- shift every element in `a` right by 1 (ie, insert 0 on left, discard rightmost element)