弗洛伊德算法模板
来源:互联网 发布:汽车之家淘宝 编辑:程序博客网 时间:2024/06/06 04:19
弗洛伊德算法求无向图最短路
<strong>#include<cstdio>#include<cstring>#include<algorithm>#define MM 0x3f3f3f3f#define size 1002using namespace std;int n,m,j,i,k,l;int a[size][size],b[size][size];int main(){ while(~scanf("%d%d",&n,&m)&&n+m)//输入两个数,n点的总数,m边的总数 { for(i=0; i<size; i++) for(j=0; j<size; j++) { if(i!=j) a[i][j]=MM; else a[i][j]=0; b[i][j]=j; }//初始化两个二维数组 for(i=0; i<m; i++) { scanf("%d%d%d",&j,&k,&l); a[j][k]=l; a[k][j]=l; }//输入路经端点和路径长 for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { if(i==j) continue; if(a[i][j]>=MM) continue; for(k=1; k<=n; k++) { if(a[j][k]>a[j][i]+a[i][k]) { a[j][k]=a[j][i]+a[i][k]; b[j][k]=b[j][i]; } } } } scanf("%d",&i);//查询的问题数 while(i--) { scanf("%d%d",&j,&k);//输入两个点输出之间的最短路 if(a[j][k]<MM) printf("%d\n",a[j][k]); else printf("-1\n");//两点之间没有路 } printf("结束,\n输入下一个图\n"); } return 0;}/**21 421 2 31 3 51 8 42 3 22 4 92 6 53 8 23 7 13 11 83 6 14 6 24 12 74 5 65 13 46 11 26 12 17 8 37 10 27 11 27 18 58 9 18 10 59 19 29 10 410 19 710 18 211 18 311 14 111 17 212 14 412 13 313 15 314 17 1014 15 215 16 216 17 116 21 317 21 418 19 618 20 219 20 320 21 1*/</strong>
2 0
- 弗洛伊德算法模板
- Floyd(弗洛伊德)算法 详解+模板
- 弗洛伊德算法精解与模板
- 最短路之弗洛伊德算法和模板
- 弗洛伊德算法
- 【弗洛伊德算法】
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法
- 弗洛伊德算法求最短路径
- 弗洛伊德(Floyd)算法
- 弗洛伊德(Floyd)算法
- flod弗洛伊德算法详解
- C++实现弗洛伊德算法
- Linux 线程模型的比较:LinuxThreads 和 NPTL
- 没过
- 二分查找各种情况大总结
- 123
- 使用标准io实现文件复制功能
- 弗洛伊德算法模板
- 媒体查询——响应式布局
- 给IDA6.1制作system函数的签名文件
- 【年中总结】——愿有人陪你颠沛流离
- 爬梯积累:IT公司管理者、TeamLeader了解一下
- Redis常见集群方案、Codis实践及与Twemproxy比较
- 文件管理-外存分配方式
- 微信公众平台开发——2、代码模式学习总结,接入自己的服务
- POJ-3734 Blocks