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求最短路的主要内容,如果未能解决你的问题,请参考以下文章

Floyd求最短路

Floyd求最短路

Floyd 求最短路(poj 1161)

floyd求最短路

854. Floyd求最短路

AcWing 854. Floyd求最短路(模板)