1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=2e4+10; int d[N],n,m,st,ed; vector<pair<int,int> >G[N]; bool v[N]; void dij() { queue<int>Q; memset(d,0x3f,sizeof(d)); memset(v,0,sizeof(v)); Q.push(st);d[st]=0;v[st]=1; while(!Q.empty()) { int x=Q.front();Q.pop();v[x]=0; for(auto i:G[x]) { int y=i.first,c=i.second; if(d[y]>d[x]+c) { d[y]=d[x]+c; if(!v[y])Q.push(y),v[y]=1; } } } } int main() { scanf("%d%d",&n,&m); for(int i=1,x,y;i<=m;i++) { scanf("%d%d",&x,&y); G[x].push_back({y,1}); G[y].push_back({x,1}); } st=1; dij(); int ans=0,p=0,sum=0; for(int i=1;i<=n;i++) { if(d[i]>ans){sum=1;ans=d[i];p=i;} else if(d[i]==ans){sum++;} } printf("%d %d %d\n",p,ans,sum); return 0; }
- 1
信息
- ID
- 1571
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 163
- 已通过
- 34
- 上传者