求助!
  • 板块P1346 电车
  • 楼主poor_OIer
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/2 22:10
  • 上次更新2023/11/2 23:46:02
查看原帖
求助!
704634
poor_OIer楼主2023/9/2 22:10
#include<bits/stdc++.h>
#define INF 0x7ffffff
using namespace std;
int n,a,b,mp[105][105];
inline void init()
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			mp[i][j]=INF,mp[i][i]=0;
}
inline void input()
{
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++)
	{
		int k;
        cin>>k;
		for(int j=1;j<=k;j++)
		{
			int y;
            cin>>y;
			if(j==1)
				mp[i][y]=0;
			else
				mp[i][y]=1;
		}
	}
}
inline void output()
{
	if(mp[a][b]==INF)
		cout<<-1;
	else
		cout<<mp[a][b];
}
inline void Floyd()
{
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
}
int main()
{
	init();
	input();
	Floyd();
	output();
	return 0;
}

总是20分,不知道哪里错了。

2023/9/2 22:10
加载中...