弗洛伊德算法模板

弗洛伊德算法求无向图最短路

#include
#include
#include
#define MM 0x3f3f3f3f
#define size 1002
using namespace std;
int n,m,j,i,k,l;
int a[size][size],b[size][size];
int main()
{
    while(~scanf("%d%d",&n,&m)&&n+m)//输入两个数,n点的总数,m边的总数
    {
        for(i=0; i=MM)
                continue;
                for(k=1; k<=n; k++)
                {
                    if(a[j][k]>a[j][i]+a[i][k])
                    {
                        a[j][k]=a[j][i]+a[i][k];
                        b[j][k]=b[j][i];
                    }
                }
            }
        }

        scanf("%d",&i);//查询的问题数
        while(i--)
        {
            scanf("%d%d",&j,&k);//输入两个点输出之间的最短路
            if(a[j][k]


你可能感兴趣的:(图论)