Floyed理解 Floyd算法的本质是动态规划,其转移方程为:f(k,i,j) = min( f(k-1,i,j), f(k-1,i,k)+f(k-1,k,j) ). f(k-1,i,j)表示经过前k-1个点 f(k-1,i,k)+f(k-1,k,j)表示经过k这个点 f(k,i,j)表示路径除开起点i与终点j,只经过前k个点中的某些点,从i到j的最小值. 计算这个值只需要考虑两种情况:最短路经过k,和最短路不经过k(那么就经过前k-1个点中的某些点). 由于k要从k-1转移而来,自然k为最外…