Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Matrix Floyd/Warshall算法mod在最大长度k处找到最便宜的路径_Matrix_Shortest Path_Floyd Warshall - Fatal编程技术网

Matrix Floyd/Warshall算法mod在最大长度k处找到最便宜的路径

Matrix Floyd/Warshall算法mod在最大长度k处找到最便宜的路径,matrix,shortest-path,floyd-warshall,Matrix,Shortest Path,Floyd Warshall,我正在编辑Floyd的算法,所以不是每个Dk,其中k是最高的中间顶点,k是最大路径长度。最终,它将拥有与Floyd相同的输出,但每个子迭代都可能不同。例如,如果有4个顶点:0,1,2,3,我想找到从0到3的最便宜的路径,其最大长度为K。该图假定为有向图 所以如果k=2,那么我只能检查0->3…0->1->3…0->2->3,其中每个箭头都指示一条边/路径。如果k=3,那么我只能选择0->3…0->1->3…0->1->2->3…0->2->3…0->2->1->3等 0 1 2

我正在编辑Floyd的算法,所以不是每个Dk,其中k是最高的中间顶点,k是最大路径长度。最终,它将拥有与Floyd相同的输出,但每个子迭代都可能不同。例如,如果有4个顶点:0,1,2,3,我想找到从0到3的最便宜的路径,其最大长度为K。该图假定为有向图

所以如果k=2,那么我只能检查0->3…0->1->3…0->2->3,其中每个箭头都指示一条边/路径。如果k=3,那么我只能选择0->3…0->1->3…0->1->2->3…0->2->3…0->2->1->3等

    0   1   2   3
0   0   4   9   12
1   9   0   3   11   // the adj matrix I'm referencing for 1 example
2   9   10  0   2
3   1   99  6   0

我需要帮助理解这个实现,不知道从哪里开始,除了弗洛依德的算法。

< P>这里是C++的代码,用于你的问题:

#定义INF 10000005
使用名称空间std;
int main()
{
整数i,j,k,n,m,ver,edg,len,from,to;
int mat[10][10][10],next[10][10][10];
cin>>ver;
对于(i=0;i