lanqiao oj 1121 蓝桥公园(floyd)

简介: lanqiao oj 1121 蓝桥公园(floyd)

用户登录

多源求最短路

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
typedef long long LL ;
const LL N = 410 , INF = 0x3f3f3f3f3f3f3f3f;//最大值 
LL f[N][N] ;
LL n , m , q ;
 
int main(){
  cin >> n >> m >> q ;
  for(int i = 1 ; i <= n ;i ++){
    for(int j =1 ; j <= n ; j ++){
      f[i][j] = INF ;
    }
  }
  for(int i = 1 ; i <= m ; i++){
    LL a, b, c ;
    cin >> a >> b >> c ;
    f[a][b] = f[b][a] = min(c,f[a][b]) ;//可能有重边 
  }
  for(int k = 1 ; k <= n ; k++){
    for(int i = 1 ; i <= n ; i ++){
      for(int j = 1 ; j <= n ; j ++){
        f[i][j] = min(f[i][j] , f[i][k] + f[k][j]) ;
      }
    }
  }
  for(int i = 1 ; i <= q ; i ++){
    LL a , b ; cin >> a >> b ;
    if(f[a][b] == INF) cout << "-1" << endl ;//如果没更新过,就说明没有公共边,就输出-1 
    else if(a == b) cout << "0" << endl ;//如果相等就输出0 
    else cout << f[a][b] << endl ;
  }
  return 0 ;
} 
目录
相关文章
|
3天前
lanqiao OJ 22年省赛 扫雷
lanqiao OJ 22年省赛 扫雷
12 1
|
3天前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
9 0
|
3天前
lanqiao OJ 364 跳石头
lanqiao OJ 364 跳石头
17 6
|
3天前
lanqiao OJ 3513 岛屿个数(2023省赛)
lanqiao OJ 3513 岛屿个数(2023省赛)
9 2
|
1天前
lanqiao oj 1135 蓝桥幼儿园(并查集)
lanqiao oj 1135 蓝桥幼儿园(并查集)
5 0
|
2天前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
6 0
|
1天前
lanqiao oj 1122 蓝桥王国
lanqiao oj 1122 蓝桥王国
5 0
|
2天前
|
BI
lanqiao OJ 蜗牛
lanqiao OJ 蜗牛
6 0
|
3天前
lanqiao OJ 102 青蛙跳杯子
lanqiao OJ 102 青蛙跳杯子
10 0
|
1天前
lanqiao OJ 207 大臣的旅费(两次dfs)
lanqiao OJ 207 大臣的旅费(两次dfs)
6 0