Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:一直Runtime Error,也不知道为啥?求大佬解答In Reply To:一直Runtime Error,也不知道为啥?求大佬解答 Posted by:zhaoxp at 2019-07-31 16:13:16 > #include<cstdio> > #include<cstring> > #include<vector> > #include<queue> > #include<algorithm> > using namespace std; > const int maxn=1e4+7; > > struct edge > { > int to, cost; > }; > vector<edge> g[maxn]; > queue<int> que; > int vis[maxn]; > int dis[maxn]; > int bfs(int s, int flag) > { > memset(vis, 0, sizeof(vis)); > memset(dis, 0, sizeof(dis)); > edge e; > int tmp=0, tmpi, u; > vis[s]=1; > dis[s]=0; > que.push(s); > while(!que.empty()) > { > u=que.front(); > que.pop(); > for(int i=0; i<g[u].size(); i++) > { > e=g[u][i]; > if(vis[e.to]==0) > { > vis[e.to]=1; > dis[e.to]=dis[u]+e.cost; > if(tmp < dis[e.to]) > { > tmp=dis[e.to]; > tmpi=e.to; > } > que.push(e.to); > } > } > } > if(flag==0) return tmpi; > else return tmp; > } > int main() > { > int a, b, c, ans=0; > edge e; > while(scanf("%d%d%d", &a, &b, &c)!=EOF) > { > e.cost=c; > e.to=b; > g[a].push_back(e); > e.to=a; > g[b].push_back(e); > } > a=bfs(1, 0); //这里任意选了一个点 > ans=bfs(a, 1); > printf("%d\n", ans); > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator