本地编译成功但无法粘贴,洛谷CE
查看原帖
本地编译成功但无法粘贴,洛谷CE
528867
Paris_Commune楼主2023/1/17 18:12
#include <bits/stdc++.h>
using namespace std;
int ver[100005],nxt[100005],hd[20005],tot=1;
bool vis[100005];
int n,m,d[100005],q[100005],l=1,r,cnt1,cnt2,cnt3;
void find(int x,int y){
	ver[++tot]=y;
	nxt[tot]=hd[x];
	hd[x]=tot;
}
void spfa(){
	memset(d,0x3f,sizeof d);
	q[r++]=1;
	d[1]=0;
	while(l<=r){
		int x=q[l++];
		vis[x]=0;
		for(int i=hd[x];i;i=nxt[i]){
			int y=ver[i];
			if(d[y]>d[x]+1){
				d[y]=d[x]+1;
				if(!vis[y]){
					q[r++]=y;
					vis[y]=1;
				}
			}
		}
	}
}
int main(){
	cin>>n>>m; 
	while(m--){
		int x,y;
		cin>>x>>y;
		find(x,y);
		find(y,x);
	}
	spfa();
	for(int i=1;i<=n;i++){
		cnt1=max(cnt1,d[i]);
	}
	for(int i=1;i<=n;i++){
		if(d[i]==cnt1){
			if(!cnt2){
				cnt2=i;
			}
			cnt3++;
		}
	}
	cout<<cnt2<<' '<<cnt1<<' '<<cnt3;
	return 0;
}
2023/1/17 18:12
加载中...