弗洛伊德算法(floyed)

核心五行,基于已有的矩阵,解决多源最短路径问题,可以解决负权问题

最简单的一种,直接上代码

复制代码
 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 const int inf=0x3f3f3f3f;
 5 const int maxn=10001;
 6 int dis[maxn][maxn];
 7 int n,m,u,v,w;
 8 void floyed()
 9 {
10     for(int k=1;k<=n;k++)
11     {
12         for(int i=1;i<=n;i++)
13         {
14             for(int j=1;j<=n;j++)
15             {
16                 if(dis[i][j]>dis[i][k]+dis[k][j])
17                 dis[i][j]=dis[i][k]+dis[k][j];
18             }
19         }
20      } 
21 }
22 int main()
23 {
24     cin>>n>>m;
25     for(int i=1;i<=n;i++)
26     {
27         for(int j=1;j<=n;j++)
28         {
29             if(i==j)
30             dis[i][j]=0;
31             else
32             dis[i][j]=inf;
33         }
34     }
35     for(int i=1;i<=m;i++)
36     {
37         cin>>u>>v>>w;
38         dis[u][v]=w;
39     }
40     floyed();
41     for(int i=1;i<=n;i++)
42     {
43         for(int j=1;j<=n;j++)
44         {
45             cout<<dis[i][j]<<" ";
46         }
47         cout<<endl;
48     }
49     return 0;
50 }
复制代码

 

posted @   格蕾  阅读(151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示