求调输入,玄关
查看原帖
求调输入,玄关
597555
hzb1121楼主2025/7/24 12:08
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,m,g[505][505];
string s;
int main()
{
	scanf("%d %d\n",&m,&n);
	//getline(cin, s);
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	if(i!=j) g[i][j]=1e5;
	else g[i][j]=1;
	for(int i=1;i<=m;i++)
	{
		getline(cin,s);
		int len=s.size(),a[505],k=1,p=1;
		memset(a,0,sizeof(a));
		for(int j=len-1;j>=0;j--)
		{
			if(s[j]==' ') k=1,p++;
			else{
				a[p]+=(s[j]-'0')*k;
				k*=10;
			}
		}
		for(int j=p;j>1;j--)
		{
			for(int l=j-1;l>=1;l--)
			{
				g[a[j]][a[l]]=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]);
	//for(int i=1;i<=n;i++)
	//for(int j=1;j<=n;j++)
	//cout<<i<<" "<<j<<" "<<g[i][j]<<endl;
	if(g[1][n]==1e5) cout<<"NO";
	else cout<<g[1][n]-1;
	return 0;
}
2025/7/24 12:08
加载中...