UVA-10048(弗洛伊德)
来源:互联网 发布:开封教务网络管理系统 编辑:程序博客网 时间:2024/05/21 21:44
题目链接戳这里
题意:给出一张图,求出从一点到另一点经过的最大权值的最小值
一遍弗洛伊德即可。
map[i][j]=min(map[i][j],max(map[i][k],map[k][j]))
注意是无向图
注意变态的输出方式
代码
#include<stdio.h>#include<string.h>#include<queue>#include<iostream>#include<algorithm>using namespace std;//弗洛伊德const int maxn=105;const int INF=0x3f3f3f3f;int map[maxn][maxn];int main(){ int C,S,Q; int casen=0; while(~scanf("%d%d%d",&C,&S,&Q)&&C&&S&&Q) { for(int i=1; i<=C; i++) for(int j=1; j<=C; j++) map[i][j]=INF; while(S--) { int u,v,w; scanf("%d%d%d",&u,&v,&w); if(map[u][v]>w) { map[u][v]=w; map[v][u]=w;//注意是无向图 } } for(int k=1; k<=C; k++) for(int i=1; i<=C; i++) for(int j=1; j<=C; j++) if(map[i][j]>max(map[i][k],map[k][j])) map[i][j]=max(map[i][k],map[k][j]); if(casen)//万恶的PE printf("\n"); printf("Case #%d\n",++casen); while(Q--) { int u,v; scanf("%d%d",&u,&v); map[u][v]==INF?printf("no path\n"):printf("%d\n",map[u][v]); } } return 0;}
0 0
- UVA-10048(弗洛伊德)
- uva 1001 奶酪里的老鼠(狄杰斯特拉或弗洛伊德)
- 弗洛伊德(Floyd)算法
- 弗洛伊德(Floyd)算法
- 弗洛伊德(Floyd)算法
- 弗洛伊德(Floyd)算法
- Wormholes (弗洛伊德 )
- Stockbroker Grapevine (弗洛伊德)
- Currency Exchange (弗洛伊德)
- Frogger(弗洛伊德变形)
- Frogger (弗洛伊德)
- 弗洛伊德
- 弗洛伊德
- 弗洛伊德(Floyd)算法过程
- 弗洛伊德(Floyd)算法过程
- Floyd算法(弗洛伊德算法)
- poj2240Arbitrage(最短路 弗洛伊德)
- Stockbroker Grapevine (弗洛伊德算法)
- 【codeforces 486B OR in Matrix】
- 剑指offer--面试题38:数字在排序数组中出现的次数
- Swift 数组(Array)
- vim高亮代码中的变量
- 句子逆序
- UVA-10048(弗洛伊德)
- 剑指offer--面试题39:二叉树的深度
- 基于原生javascript的淡入淡出函数封装(兼容IE)
- iOS 10 UIScrollView详解(scrollview自带刷新UIRefreshControl)
- 循环不变式(loop invariant)
- 找出我的GID
- HDU-2015查找最大元素
- 音频播放\录音
- Android 开源项目源码解析 -->Android Universal Image Loader 源码分析(十四)