Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Q矩阵单元间的最短路径_C++_Matrix_Graph_Shortest Path - Fatal编程技术网

C++ Q矩阵单元间的最短路径

C++ Q矩阵单元间的最短路径,c++,matrix,graph,shortest-path,C++,Matrix,Graph,Shortest Path,我在一次本地比赛中看到了这个问题,我正在努力解决它 我得到了一个包含“r”行和“c”列的矩阵。然后给我“Q”单元格 我的任务是找到最短路径:从左上角“(0,0)”开始,到右下角“(第1行,第1列)”结束,然后遍历所有“Q”单元格。我可以左右上下移动 暴力是不行的(我只有1秒的CPU时间,最多可以给我50列和行) 以下是一个示例输入: 6 3 3 0 1 4 2 5 2 以下是示例输出: 7 我正在考虑某种BFS,但我不知道如何将其应用于这个具体问题 任何帮

我在一次本地比赛中看到了这个问题,我正在努力解决它

我得到了一个包含“r”行和“c”列的矩阵。然后给我“Q”单元格

我的任务是找到最短路径:从左上角“(0,0)”开始,到右下角“(第1行,第1列)”结束,然后遍历所有“Q”单元格。我可以左右上下移动

暴力是不行的(我只有1秒的CPU时间,最多可以给我50列和行)

以下是一个示例输入:

6 3   
3        
0 1    
4 2  
5 2 
以下是示例输出:

7
我正在考虑某种BFS,但我不知道如何将其应用于这个具体问题


任何帮助或建议都将不胜感激

计算每个Q点与起点和终点之间的最短路径。创建具有这些距离的图形

由于只能正交移动,两点之间的最短距离是其坐标之间绝对差的总和

选择访问距离图中所有节点的算法。底线是,这已成为“旅行推销员问题”,您需要决定许多可用算法中哪一种最适合您

如果我理解您的输入,距离图如下所示

Locations

B  0 0
Q1 0 1    
Q2 4 2  
Q3 5 2 
E  3 3

Distances

B  0  1  6  7  6
Q1 0  0  5  6  5
Q2 0  0  0  1  2
Q3 0  0  0  0  3
E  0  0  0  0  0