代码拉取完成,页面将自动刷新
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<queue>
#define maxv 10001
using namespace std;
int n, e;
int visited[maxv];
int edgex[maxv][maxv];
int BFS(int v);
int main()
{
int i, j;
cin >> n >> e;
int no1, no2;
int node;
double result;
for (i = 1;i <= e;i++)
{
cin >> no1 >> no2;
edgex[no1][no2] = 1;
edgex[no2][no1] = 1;
}
for (i = 1;i <= n;i++)
{
for (j = 1;j <= n;j++)
visited[j] = 0;
node = BFS(i);
result = 100.00 * node / n;
printf("%d:%.2lf%%\n", i, result);
}
return 0;
}
int BFS(int v)
{
int level = 0;
int count = 1;
int last = v;
int tail, temp;
int i;
queue<int>qu;
qu.push(v);
visited[v] = 1;
while (!qu.empty() && level < 6)
{
temp = qu.front();
qu.pop();
for (i = 1;i <= n;i++)
{
if (visited[i] == 0 && edgex[temp][i] == 1)
{
count++;
qu.push(i);
visited[i] = 1;
tail = i;
}
}
if (last == temp)
{
level++;
last = tail;
}
}
return count;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。