06-图3 六度空间 (30 分)

“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。


图1 六度空间示意图

“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标。然而由于历史的原因,这样的研究具有太大的局限性和困难。随着当代人的联络主要依赖于电话、短信、微信以及因特网上即时通信等工具,能够体现社交网络关系的一手数据已经逐渐使得“六度空间”理论的验证成为可能。

假如给你一个社交网络图,请你对每个节点计算符合“六度空间”理论的结点占结点总数的百分比。

输入格式:

输入第1行给出两个正整数,分别表示社交网络图的结点数N(1,表示人数)、边数M(≤,表示社交关系数)。随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个结点的编号(节点从1到N编号)。

输出格式:

对每个结点输出与该结点距离不超过6的结点数占结点总数的百分比,精确到小数点后2位。每个结节点输出一行,格式为“结点编号:(空格)百分比%”。

输入样例:

10 9
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

输出样例:

1: 70.00%
2: 80.00%
3: 90.00%
4: 100.00%
5: 100.00%
6: 100.00%
7: 100.00%
8: 90.00%
9: 80.00%
10: 70.00%
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
const int maxn = 10010;int G[maxn][maxn] = {0};
bool vis[maxn];
int n,m;int BFS(int v){int count = 1;queue<int> q;q.push(v);vis[v] = true;int tail;int last = v;int level = 0;while(!q.empty()){int now = q.front();q.pop();for(int i = 1; i <= n; i++){if(!vis[i] && G[now][i] == 1){vis[i] = true;q.push(i);tail = i;count++;}}if(now == last){last = tail;level++;}if(level == 6){return count;}}
}int main(){scanf("%d%d",&n,&m);int u,v;for(int i = 0; i < m; i++){scanf("%d%d",&v,&u);G[u][v] = G[v][u] = 1;}for(int i = 1; i <= n; i++){printf("%d: ",i);memset(vis,0,sizeof(vis));int count = BFS(i);double ratio = count *1.0/n*100;printf("%.2f%%\n",ratio);}return 0;
}

 

转载于:https://www.cnblogs.com/wanghao-boke/p/10815726.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络编程目录

UNIX网络编程目录 1. TCP三次握手的第三次的 ack包丢失会怎样&#xff1f; 2. inux网络编程“惊群”问题总结

Linux高性能服务器编程

一、文件IO、标准IO 1. 2. 函数dup和dup2 三、进程 1. fork、vfork、clone 2. 函数wait、waitpid、孤儿进程、僵尸进程 3. 进程组 4. 会话 四、信号 1. 函数signal、sigaction 2. 函信号SIGCHLD 3. 函数kill、raise、abort、alarm 4. 信号集、sigprocmask、sigpending 五、…

07-图4 哈利·波特的考试 (25 分)

哈利波特要考试了&#xff0c;他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha&#xff0c;将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念&#xff0c;例如ahah可以将老鼠变成猫。另外&…

C++ Primer (二)目录

第十五章&#xff1a;面向对象程序设计 1. 虚函数/2. 虚函数表剖析&#xff08;一&#xff09;3. 虚函数表剖析&#xff08;二&#xff09;4. 虚函数表剖析&#xff08;三&#xff09;

07-图6 旅游规划 (25 分)

有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的一条路径。 输入格式: 输…

08-图7 公路村村通 (30 分)

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤&#xff09;和候选道路数目M&#xff08;≤&#xff09;&#xff1b;随…

《回溯算法》目录

序号题目标记1 46. 全排列 2 47. 全排列 II 3 39. 组合总和 4 40. 组合总和 II 5 6

08-图9 关键活动 (30 分)

假定一个工程项目由一组子任务构成&#xff0c;子任务之间有的可以并行执行&#xff0c;有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。 比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成…

C++ Primer

C Primer目录索引 虚函数表剖析&#xff08;一&#xff09;虚函数表剖析&#xff08;二&#xff09;static关键字用法 volatile、const的用法​​​​​​​

10-排序4 统计工龄 (20 分)

给定公司N名员工的工龄&#xff0c;要求按工龄增序输出每个工龄段有多少员工。 输入格式: 输入首先给出正整数N&#xff08;≤&#xff09;&#xff0c;即员工总人数&#xff1b;随后给出N个整数&#xff0c;即每个员工的工龄&#xff0c;范围在[0, 50]。 输出格式: 按工龄的递…

10-排序6 Sort with Swap(0, i) (25 分)

Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY operation that is allowed to use? For example, to sort {4, 0, 2, 1, 3} we may apply the swap operations in the follow…

Java读取Excel文件

首先下载jxl.jar包&#xff0c;下载地址&#xff1a;http://download.csdn.net/detail/prstaxy/4469935然后在工程文件上右键选Built Path—Configure Built Path切换到Libraries导入jxl.jar包。读取Excel方法示例&#xff1a;写入Excel见文章&#xff1a;http://blog.csdn.net…

11-散列1 电话聊天狂人 (25 分)

给定大量手机用户通话记录&#xff0c;找出其中通话次数最多的聊天狂人。 输入格式: 输入首先给出正整数N&#xff08;≤&#xff09;&#xff0c;为通话记录条数。随后N行&#xff0c;每行给出一条通话记录。简单起见&#xff0c;这里只列出拨出方和接收方的11位数字构成的手机…

Java写入Excel文件

首先下载jxl.jar包&#xff0c;下载地址&#xff1a;http://download.csdn.net/detail/prstaxy/4469935然后在工程文件上右键选Built Path—Configure Built Path切换到Libraries导入jxl.jar包。写入Excel方法示例&#xff1a;读取Excel见文章&#xff1a;http://blog.csdn.net…

Glib介绍

GLib是一种底层库&#xff0c;创建GDK和GTK应用程序时该库提供许多有用的定义和函数。包括基本类型及限制的定义、标准宏、类型转化、字节序、存储分配、警告和断言、消息记录、计时器、字符串工具、hook函数、句法扫描器、动态加载模块和字符串自动补全&#xff0c;同时也提供…

11-散列3 QQ帐户的申请与登陆 (25 分)

实现QQ新帐户申请和老帐户登陆的简化版功能。最大挑战是&#xff1a;据说现在的QQ号码已经有10位数了。 输入格式: 输入首先给出一个正整数N&#xff08;≤&#xff09;&#xff0c;随后给出N行指令。每行指令的格式为&#xff1a;“命令符&#xff08;空格&#xff09;QQ号码&…

glib字符串

学过面向对象语言的同学一定都知道String类&#xff0c;一定知道这个类对字符串的操作是多麽的方便&#xff0c;但是c语言中是没有这个类&#xff0c;甚至没有类的概念&#xff0c;但是glib帮我们做的这个“类” GString 除了使用gchar *进行字符串处理以外&#xff0c;Glib还…

KMP 串的模式匹配 (25 分)

给定两个由英文字母组成的字符串 String 和 Pattern&#xff0c;要求找到 Pattern 在 String 中第一次出现的位置&#xff0c;并将此位置后的 String 的子串输出。如果找不到&#xff0c;则输出“Not Found”。 本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试…

命令行工具tshark使用小记

1、目的 写这篇博客的目的主要是为了方便查阅&#xff0c;使用wireshark可以分析数据包&#xff0c;可以通过编辑过滤表达式来达到对数据的分析&#xff1b;但我的需求是&#xff0c;怎么样把Data部分导出来&#xff0c;因为后续的工作主要针对数据包的Data部分&#xff0c;主要…

winshark重要数据结构

说起来有一些惭愧&#xff0c;研究wireshark有一段时间了&#xff0c;但是对源代码的分析却至今没有什么进展。。。 最初想要研究wireshark是因为我的开题是基于wireshark来做的。 现在有很多抓包工具&#xff0c;wireshark的优势在于完全开源&#xff0c;分析功能强大&#xf…