```cpp
c[i][x]=0;
c[x][i]=min(c[x][i],1);
```
你写反了吧……还是说你理解错了
by BuXiangJuanLe @ 2018-09-15 15:02:47
@[Izayoi](/space/show?uid=58197)
哦
谢谢
已懂
可是还是有一个问题
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c[110][110],k1,x;
int main()
{
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][j]=1000000000;
for(int i=1;i<=n;i++)
{
scanf("%d",&k1);
c[i][i]=0;
scanf("%d",&x);
c[i][x]=0;
for(int j=2;j<=k1;j++)
{
scanf("%d",&x);
c[i][x]=min(c[i][x],1);
}
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
if(c[a][b]==1000000000)
printf("-1\n");
else
printf("%d\n",c[a][b]);
return 0;
}
https://www.luogu.org/paste/w9jbo62h
by 洛倾然 @ 2018-09-20 20:18:27