floyd算法求最小环
来源:互联网 发布:益友电台第一台网络 编辑:程序博客网 时间:2024/05/21 08:03
(1)floyd算法求最小环(无向图)
设一个环中的最大结点编号为k,与它相连的两个点为i, j,则这个环的最短长度为g[i][k] + g[k][j] + dist[i][j](最短距离)
根据floyd算法原理,在最外层做了k - 1次后,dist[i][j]代表了i到j的路径中,所有结点的编号都小于k的最短路径
代码:FORE(k, 1, N) {
FOR(i, 1, k) FOR(j, i + 1, k)
if(answer > g[k][i] + g[k][j] + dist[i][j])
answer = g[k][i] + g[k][j] + dist[i][j];
FORE(i, 1, N) FORE(j, 1, N)
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
(2)floyd算法求最短路
该算法是基于动态规划的原理实现的令状态dp(i, j, k)表示从i到j的最短路径长度,其中k表示路径中的最大可能顶点(不包含i,j)
对于状态dp(i, j, k),可以考虑顶点k,如果顶点k不在该路径中,则该路径长度为dp(i, j, k - 1),如果k在该路径中,则该路径长度为dp(i, k, k - 1) + dp(k, j, k - 1)
所以状态转移方程为:dp(i, j, k) = min(dp(i, j, k - 1), dp(i, k, k - 1) + dp(k, j, k - 1))对于初始状态:dp(i, j, 0) = g[i][j]
- floyd算法求最小环
- Floyd算法求最小环
- floyd求最小环
- floyd求最小环
- floyd求最小环
- floyd求最小环
- FLOYD 求最小环
- floyd求最小环
- floyd求最小环
- Floyd求最小环
- floyd求最小环
- floyd求最小环
- Floyd最小环算法
- floyd求最小环 模板
- hdu1599 floyd 求最小环
- 求最小环(floyd,dijkstra)
- 求无向图最小环算法-floyd
- Floyd算法求无向图最小环
- SQL SERVER查询重复的记录
- ZOJ3010 The Lamp Game, DFS
- android之ImageView
- Android静默方式实现批量安装卸载应用程序
- [OpenGL]glViewport
- floyd算法求最小环
- 如何提高android程序运行效率,程序员在开发过程中应当注意的一些事项
- [IOI2000]快乐的蜜月
- Oracle APEX级联LOV:Cascading LOVs/Select Lists
- vc编程遇到的各种问题和解决方法
- C++头文件的包含顺序研究
- 查询国际学术会议的信息
- usaco Fence Loops
- 关于std::fstream以及std::ifstream打开中文路径名失败的问题和解决方法