显然的,floyd 被插的点要再最外面枚举
by __KrNalty__ @ 2022-07-28 19:01:22
*在
by __KrNalty__ @ 2022-07-28 19:01:40
@[Happy_GG](/user/577999)
by __KrNalty__ @ 2022-07-28 19:01:48
@[__KrNalty__](/user/386913)
草(一种植物)
是我记忆缺失了()
thx
by Happy_GG @ 2022-07-28 19:05:34
代码
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=100+10;
const int inf=1e+8;
int g[maxn][maxn];
int n,m,k,f,t;
int main()
{
scanf("%d%d%d",&n,&f,&t);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{g[i][j]=inf;g[i][i]=0;}
for(int i=1;i<=n;i++){
scanf("%d",&k);
for(int j=1;j<=k;j++){
int a;
scanf("%d",&a);
if(j==1)g[i][a]=0;
else g[i][a]=1;
}
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
if(g[f][t]==inf)puts("-1");
else printf("%d",g[f][t]);
}
```
by jiangyang123 @ 2023-06-11 13:54:06