算法基础之图中点的层次
2023-12-13 23:16:58
图中点的层次
-
核心思想:BFS 树与图的广度优先遍历
-
#include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int N=100010; int n,m; int d[N]; //距离 int idx,e[N],ne[N],h[N]; void add(int a, int b) { e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ; //跟树的重心一样 } int bfs(){ memset(d, -1, sizeof d); d[1] = 0; queue<int> q; //初始化 q.push(1); while(q.size()) { int t=q.front(); q.pop(); for(int i=h[t];i!=-1;i=ne[i]) { int j=e[i]; if(d[j] == -1) { d[j] = d[t] +1; q.push(j); } } } return d[n]; } int main(){ cin>>n>>m; memset(h, -1, sizeof h); while(m--){ int a,b; cin>>a>>b; add(a,b); } cout<<bfs()<<endl; return 0; }
-
文章来源:https://blog.csdn.net/Pisasama/article/details/134983530
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!