- 注意输入 内容的含义
- .Switch in the i-th intersection is initially pointing in the direction of the first intersection listed.
- (第i个十字路口的开关最初指向第一个十字路口的方向。)
-
#include<iostream> #include<cstring> using namespace std; #define maxn 255 #define inf 0x3f3f3f3f int n,m,mmp[maxn][maxn],a,b,t[maxn],k; int main() { cin>>n>>a>>b; memset(mmp,inf,sizeof(mmp)); for(int i=1; i<=n; i++) { cin>>k; for(int j=1; j<=k; j++) { cin>>t[j]; if(j==1) mmp[i][t[j]]=0; else mmp[i][t[j]]=1; } } for( k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) if(mmp[i][j]>mmp[i][k]+mmp[k][j]) mmp[i][j]=mmp[i][k]+mmp[k][j]; if(mmp[a][b]==inf) cout<<-1<<endl; else cout<<mmp[a][b]<<endl; return 0; }