20分求调(玄关)
查看原帖
20分求调(玄关)
574921
Dress楼主2024/8/26 07:55

dalao求调

#include<bits/stdc++.h>
#define INF 0x7fffffff
#define int long long
using namespace std;
const int N=1005;
inline int read(){
	int XX=0,FF=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')
			FF*=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		XX=XX*10+ch-48;
		ch=getchar();
	}
	return XX*FF;
}
int a[N][N];
int maxn=-1; 
signed main(){
	ios::sync_with_stdio(false);
	int n=read(),m=read(),s=1;
	for(int i=1;i<=n;++i){
		for(int j=1;j<i;++j){
			a[i][j]=a[j][i]=INF;
		}
	}
	for(int i=1;i<=m;++i){
		int u=read(),v=read(),w=1;
		a[u][v]=min(a[u][v],w);
	}
	for(int k=1;k<=n;++k){
		for(int i=1;i<=n;++i){
			if(i==k||a[i][k]==INF){
				continue;
			}
			for(int j=1;j<=n;++j){
				if(a[i][j]>a[i][k]+a[k][j]){
					a[i][j]=a[i][k]+a[k][j];
				}
			}
		}
	}
	for(int i=1;i<=n;++i){
		maxn=max(maxn,a[s][i]);
	}
	cout<<maxn;
	return 0;
}
2024/8/26 07:55
加载中...