由 Hack Floyd 问题引出的 Floyd 的正确性证明

摘自一篇博客,突然想写了,但是确实和原题做法也没啥关系(其实也有点关系)。感觉 Floyd 的动态规划还是非常高深的,我好像以前并没有完全理解清楚他在做什么,即使我做了灾后重建一题。

主要是一个结论:当我们求 di,j 的时候,枚举了中转点 k,当我们枚举的 k 的编号等于 path(u,v) 上编号最大的点的时候,我们就完成了更新。

我们使用数学归纳法:当我们求 di,j 的时候,我们要证明 di,kdk,j 的答案都是最优的。我们记 path(i,k)path(k,j) 上的点分别为 k1k2。由于 k1<kk2<k,那么由归纳,我们的 di,kdk,j 就是最优的。又因为对于任意的 i,满足 di,i=0,于是我们就证明完毕了。

posted @   DataEraserQ  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示