Floyd算法小结
#include<stdio.h>
#include<stdlib.h>
#define max 100000000
int d[1000][1000],path[1000][1000];
int main()
{
int i,j,k,m,n;
int x,y,z;
int sta,end;
scanf("%d%d",&m,&n); //m为结点数,n为边数
//邻接矩阵和路径矩阵初始化化
for(i=1;i<=m;i++){
for(j=1;j<=m;j++)
{
d[i][j]=max;
path[i][j]=j;
}
}
//读入边信息
for(i=1;i<=n;i++){
scanf("%d%d%d",&x,&y,&z);
d[x][y]=z;
d[y][x]=z;
}
//算法的核心部分,注意循环嵌套的顺序
for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{
if(d[i][k]+d[k][j]<d[i][j]){
d[i][j]=d[i][k]+d[k][j];
path[i][j]=path[i][k];
}
}
scanf("%d%d",&sta,&end); //sta为起点,end为终点
for(i=1;i<=m;i++){
for(j=1;j<=i;j++){
if(i!=j)
printf("%d->%d:%d\n",i,j,d[i][j]);
}
}
i=sta;
while(sta!=end){
printf("%d->",sta);
sta=path[sta][end];
}
printf("%d:%d",end,d[i][end]);
system("pause");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)