ACWING上AC但洛谷0分全WA,下载了数据发现我程序是对的,求调
查看原帖
ACWING上AC但洛谷0分全WA,下载了数据发现我程序是对的,求调
912382
Ib_aI楼主2022/12/19 20:30
#include<bits/stdc++.h>
using namespace std;
#define int long long
int m,n,s,x,y,dis[3000][3000],q[3000];
void fly()
{
	for(int k = 1; k <= n; k++)
	  for(int i = 1; i <= n; i++)
		for(int j = 1; j <= n; j++)
			if(i != j && i != k && k != j && dis[i][k] + dis[k][j] < dis[i][j])
		 	  dis[i][j] = dis[i][k] + dis[k][j];
}
signed main()
{
	memset(dis,0x3f,sizeof(dis));
	scanf("%lld%lld",&m,&n);
	for(int i = 1;i <= n;i++) dis[i][i] = 0;
	while(m--)
	{
		int a,b = 0;
		char p;
		while(scanf("%lld%c",&a,&p) > 0)
		{
			q[++b] = a;
			if(p == '\n') break;
		}
		for(int j = 1; j <= b; j++)
			for(int k = j + 1; k <= b; k++)
				if(j != k && q[j] != 0)
					dis[q[j]][q[k]] = 1;
		memset(q,0,sizeof(q));
	}
	fly();
	if(dis[1][n] < 100000) printf("%lld",dis[1][n] - 1);
	else printf("NO");
	return 0;
}
2022/12/19 20:30
加载中...