Floyd求最短路
Posted Rgylin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Floyd求最短路相关的知识,希望对你有一定的参考价值。
Floyd求最短路
#include<iostream>
using namespace std;
const int N = 210;
const int INF = 1e9;
int n,m,Q;
int g[N][N];
void floyd()
for(int k=1;k<=n ;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g[i][j]= min(g[i][j],g[i][k]+g[k][j]);
int main()
scanf("%d%d%d", &n, &m,&Q);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i==j) g[i][j]=0;
else g[i][j] = INF;
while (m -- )
int a,b,w;
scanf("%d%d%d", &a, &b,&w);
g[a][b]= min(g[a][b],w);
floyd();
while(Q--)
int a,b;
scanf("%d%d", &a, &b);
if(g[a][b]>INF/2) cout<<"impossible"<<endl;
else cout<<g[a][b]<<endl;
以上是关于Floyd求最短路的主要内容,如果未能解决你的问题,请参考以下文章