POJ 1847 floyd

来源:互联网 发布:sketchuppro2018 mac 编辑:程序博客网 时间:2024/06/01 22:54
点击打开链接//floyd 有向图#include <iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn=100+5;const int INF=1e6;int G[maxn][maxn];int v,start,en;int main(){    while(scanf("%d%d%d",&v,&start,&en)==3)    {        for(int i=1;i<=v;i++)             for(int j=1;j<=v;j++)                  if(i==j) G[i][j]=0;                  else G[i][j]=INF;        for(int i=1;i<=v;i++)        {            int num;            scanf("%d",&num);            for(int j=0;j<num;j++)            {                int x;                scanf("%d",&x);                if(!j) G[i][x]=0;                else G[i][x]=1;            }        }        for(int k=1;k<=v;k++)             for(int i=1;i<=v;i++)                   for(int j=1;j<=v;j++)                        G[i][j]=min(G[i][j],G[i][k]+G[k][j]);        if(G[start][en]<INF) printf("%d\n",G[start][en]);        else printf("-1\n");    }    return 0;}