六度空间(使用vector,queue以及bfs)
发布日期:2021-05-06 03:53:54 浏览次数:17 分类:技术文章

本文共 634 字,大约阅读时间需要 2 分钟。

六度空间

题目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

答案

#include
#include
#include
#include
#include
using namespace std;vector
vec[1001];int vis[1001];float bfs(int root)//按层遍历 { queue
q; q.push(root); int level=0,cnt=0; int last=root;//last用来划分层 while(!q.empty()) { int tmp=q.front(); q.pop(); for(int i=0;i
>n>>m; while(m--) { int x,y; cin>>x>>y; vec[x].push_back(y); vec[y].push_back(x); } for(int i=1;i<=n;i++) { printf("%d: %.2f%\n",i,bfs(i)/n*100); memset(vis,0,sizeof vis); }}

注意

  1. level要在该层的所有节点遍历完后再加1
  2. 取出队列的最后一个元素,使用的是q.back()
上一篇:Dijkstra算法代码
下一篇:地下迷宫探索(后两个测试点无法通过?这里有你想要的答案)

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月19日 01时32分09秒