【codevs 1077】多源最短路
来源:互联网 发布:手机剪辑视频软件知乎 编辑:程序博客网 时间:2024/06/05 19:40
1077 多源最短路
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题解
题目描述 Description
已知n个点(n<=100),给你n*n的方阵,a[i,j]表示从第i个点到第j个点的直接距离。
现在有Q个询问,每个询问两个正整数,a和b,让你求a到b之间的最短路程。
满足a[i,j]=a[j,i];
输入描述 Input Description
第一行一个正整数n,接下来n行每行n个正整数,满足a[i,i]=0,再一行一个Q,接下来Q行,每行两个正整数a和b。
输出描述 Output Description
一共Q行,每行一个整数。
样例输入 Sample Input
3
0 1 1
1 0 3
1 3 0
1
2 3
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
n<=100,Q可能非常大。g[i][j]均>=0
请使用flyod算法
使用C/C++的同学请注意:由于输入数据较大,使用cin和cout会导致程序超时。请使用scanf与printf进行输入和输出。
floyd模板
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 105;int dis[MAXN][MAXN];int a,b,q,n;void floyd(){ for(int k = 1; k <= n; k ++) for(int i = 1; i <= n; i ++) for(int j = 1; j <= n; j ++) dis[i][j] = min(dis[i][j],dis[i][k] + dis[k][j]);}int main(){ memset(dis,0x3f,sizeof(dis)); scanf("%d",&n); for(int i = 1; i <= n; i ++) for(int j = 1; j <= n; j ++) scanf("%d",&dis[i][j]); floyd(); scanf("%d",&q); for(int i = 1; i <= q; i ++) { scanf("%d %d",&a,&b); printf("%d\n",dis[a][b]); } return 0;}
0 0
- CODEVS 1077多源最短路
- 【codevs 1077】多源最短路
- CODEVS 1077 多源最短路
- Codevs 1077 多源最短路
- 【codevs 1077】多源最短路
- 【codevs 1077】多源最短路
- Codevs 1077 多源最短路 Floyd
- 【最短路】codevs 1391 伊吹萃香
- codevs 1269 匈牙利游戏 SPFA+次短路
- 最短路经典例题 codevs 1557 热浪
- codevs 1557 热浪(最短路【模板】)
- codevs 1269 匈牙利游戏(次短路)
- Codevs 1079 回家 最短路 spfa || dijkstra
- codevs 1079 回家(最短路)
- 最短路算法 codevs 1557 热浪
- codevs 1557 热浪 SPFA 最短路
- codevs 1021 玛丽卡 图论:最短路
- 【CodeVS】1269 匈牙利游戏 最短路 次短路 SPFA
- CODEVS|1008|数的计算
- Apache Thrift的简单使用
- UML建模表示方式
- 第三方支付架构设计之—自有账户支付
- 用Ant批量运行TestNG测试用例,并配合Reportng实现报告美化
- 【codevs 1077】多源最短路
- [Dream Team邀请赛]----Money Henry拣钱
- 使用jdbc查询数据库方法及存在的问题
- C++与设计模式(10)——桥接模式
- C/C++:函数的编译方式与调用约定以及extern “C”的使用
- ViewPager 详解(一)---基本入门
- 例题5-2 木块问题 UVa101
- 指针的知识要点
- MySQL从入门到精通_9多表数据记录查询