有向图求最小环

直接一遍floyd;然后求自己到自己的最短距离,注意初始化问题


#include 
#include 
#include 
#include 
#define mmin(a,b) a mp[i][k]+mp[k][j])
                    mp[i][j]=mp[i][k]+mp[k][j];
}

int main()
{
   // printf("%d\n",INF);
    int cases;
    scanf("%d",&cases);
    while(cases--)
    {
        int a,b,c;
        scanf("%d %d",&n,&m);
        for(int i=0; imp[i][i])
                result=mp[i][i];
        }
        if(result == INF)
            printf("-1\n");
        else
            printf("%d\n",result);
    }
    return 0;
}


你可能感兴趣的:(最短路)