弗洛伊德算法(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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异