7-1 六度空间 (PTA-数据结构)

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


图1 六度空间示意图

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

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

输入格式:

输入第1行给出两个正整数,分别表示社交网络图的结点数N(1<N≤103,表示人数)、边数M(≤33×N,表示社交关系数)。随后的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%

思路分析: 

        理论上应当用深度优先搜索或者广度优先搜索进行查找,但是不会,所以用了弗洛伊德算法,因为到每个点权值都可看作1,所以也大概是能用的。大家还是去看看深度优先搜索或者广度优先搜索是咋回事吧,顺便理解一下弗洛伊德算法的过程。


代码展示:

#include <stdio.h>
#define MAX 32767int n,m;int main()
{scanf("%d %d", &n, &m);int edge[n + 1][n + 1];for (int i = 0; i < n + 1; i++) {for (int j = 0; j < n + 1; ++j) {edge[i][j] = MAX;if(i == j)edge[i][j] = 0;}}for (int i = 0; i < m; ++i) {int x, y;scanf("%d %d", &x, &y);edge[x][y] = 1;edge[y][x] = 1;}for(int k=1; k<=n; ++k){for(int i=1; i<=n; ++i){for(int j=1; j<=n; ++j){if(edge[i][j] > edge[i][k] + edge[k][j]){edge[i][j] = edge[i][k] + edge[k][j];}}}}for(int j=1; j<=n; ++j){int cnt=1;for(int i=1; i<=n; ++i){if(edge[i][j] <= 6 && i != j)cnt++;}printf("%d: %.2f%%\n",j,1.0*cnt*100/n);}
}

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

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

相关文章

Openwrt源码下载出现“The remote end hung up unexpected”

最近项目原因需要下载openwrt21.02版本源码&#xff0c;花费了很多时间&#xff0c;找到正确方法后&#xff0c;发现可以节省很多时间&#xff0c;记录下过程&#xff0c;方便自己&#xff0c;可能方便他人。 一.问题阐述 openwrt21.02下载链接如下&#xff1a; git clone -…

MySql表分区类型

在MySQL中&#xff0c;表分区是一种将大型表拆分成更小、更易管理的部分的技术。表分区可以帮助提高查询性能、简化数据管理和维护等方面。在MySQL中&#xff0c;有几种不同类型的分区可以用于对表进行分区。以下是MySQL中常用的分区类型&#xff1a; 1. RANGE分区&#xff1a…

2024年企业在数据安全战略方面有哪些变化

根据IBM的数据&#xff0c;2023年数据泄露的平均成本达到了创纪录的445万美元&#xff0c;比2020年上涨了15%&#xff0c;仅是财务影响就足以终结一家企业&#xff0c;但数据泄露也可能对品牌声誉和客户对企业的看法产生毁灭性影响。 安全领导人忙得不可开交&#xff0c;随着员…

Python Click 简单使用说明

Python Click库的来源&#xff1a; Click是一个Python的命令行接口库&#xff0c;它由Alexandru Dutra和Ignacio Vergara于2010年创建。Click的目标是提供一种简单而灵活的方式来创建命令行应用程序。 常用参数说明&#xff1a; click.command()&#xff1a;这个装饰器用于定…

EasyCode代码生成模板

前言&#xff1a; EasyCode是 IDEA 开发的一个代码生成插件&#xff0c;主要通过自定义模板&#xff08;基于velocity&#xff09;来生成各种你想要的代码。相信大家都了解EasyCode是干嘛用的&#xff0c;下面是比较简约的一个生成模板&#xff0c;个人比较喜欢。 Controller …

Python从入门到精通六:Python数据容器

数据容器入门 为什么学习数据容器 思考一个问题&#xff1a;如果我想要在程序中&#xff0c;记录5名学生的信息&#xff0c;如姓名。 如何做呢&#xff1f; 学习数据容器&#xff0c;就是为了批量存储或批量使用多份数据 Python中的数据容器&#xff1a; 一种可以容纳多份…

ubuntu20.04设置开机自启动jar(依赖其他服务)

目的&#xff1a; 有的时候我们的项目是部署在物理机上给其他公司员工使用&#xff0c;对于他们来说操作越简单越好。所以我需要实现将我的jar部署在ubuntu上&#xff0c;实现开机自启。&#xff08;我的项目依赖emqx服务&#xff09;。 步骤&#xff1a; 切换到system目录 …

直播美颜SDK开发实战:从入门到精通

直播美颜SDK的应用已经成为许多直播平台和开发者关注的焦点。本文将带领读者深入探讨直播美颜SDK的开发实战&#xff0c;从入门到精通的过程。 1.引言 直播美颜SDK是一种集成了图像处理、人脸识别、滤镜算法等技术的开发工具包。通过使用该SDK&#xff0c;开发者能够为直播应…

单节点es 打开文件过多(too many open files)

今天重启es后&#xff0c;发现es服务是启动了&#xff0c;但是实时数据并未写入es数据库&#xff0c;查看日志发现&#xff0c;报错如下图 我看了下正在运行的es程序打开了多少文件(4274是es的pid&#xff09; 然后再网上搜了很多&#xff0c;说是要调整linux的系统&#xff0c…

深度学习 Day14——P3天气识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU&#xff08;如果设备上支持GPU就使用GPU,否则使用C…

2023 re:Invent使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序

前言 本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 “Your Data, Your AI, Your Future.&#xff08;你的数据&#xff0c;你的AI&…

HarmonyOS保存应用数据

数据管理 1 概述 在移动互联网蓬勃发展的今天&#xff0c;移动应用给我们生活带来了极大的便利&#xff0c;这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置&#xff0c;HarmonyOS应用开发也不例外。 本文将为您介绍HarmonyOS提供的数据管…

2.82【模块与包】

模块与包 什么是模块 模块就是已经构建好能够实现特定功能的代码的.py文件&#xff0c;在需要实现相应功能的时候可以直接调用该模块的函数或变量 模块化的好处 1.方便维护&#xff0c;代码定位准确 2.内部的变量&#xff0c;相互不影响&#xff0c;方便单个模块功能调试、…

统信UOS上图形化配置系统和应用代理

原文链接&#xff1a;统信UOS上图形化配置系统和应用代理 hello&#xff0c;大家好啊&#xff0c;今天我要给大家介绍的是在统信UOS操作系统上如何通过图形化界面配置系统代理和应用代理。在许多公司的内网环境中&#xff0c;直接访问互联网可能受到限制&#xff0c;但通常会提…

智慧工地源码:为施工企业提供专业落地的解决方案

智慧工地利用物联网、大数据、AI等核心技术&#xff0c;实时采集现场数据&#xff0c;自动分析&#xff0c;精准分析、智能决策、科学评价&#xff0c;形成一套数据驱动的新型管理模式。为施工企业提供生产提效、安全可控、成本节约的项目管理解决方案&#xff0c;提升项目部管…

关于linux 磁盘占用排查问题

1.关于磁盘 查看整体磁盘占用大小 df -h 2. 先排除mysql 数据大小 查询库的大小 SELECT table_schema AS "Database", ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema…

理解Mysql索引原理及特性

作为开发人员&#xff0c;碰到了执行时间较长的sql时&#xff0c;基本上大家都会说”加个索引吧”。但是索引是什么东西&#xff0c;索引有哪些特性&#xff0c;下面和大家简单讨论一下。 1 索引如何工作&#xff0c;是如何加快查询速度 索引就好比书本的目录&#xff0c;提高数…

【力扣】19. 删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 相比于昨天&#xff0c;感觉刷题越来越轻松了~ 我进步了&#xff01; 以后刷题力度要加快了&#xff0c;因为我报了蓝桥杯&#xff01;加油~ 法一&#xff1a;计算链表长度 思路&#xff1a; 首先用个函数来计算出该链表的长度&#xff0c;然…

C语言之⽂件操作

一为啥需要文件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久化的保…

【个人版】SpringBoot下Spring-Security自定义落地篇【三】

背景&#xff1a; 前两篇文章将spring-security的设计架构、核心类、配置及构建过程基本过了一遍&#xff0c;其实很偏理论&#xff0c;如果对源码不感兴趣或项目使用不深&#xff0c;基本可以忽略&#xff0c;毕竟完全理解可能也不会用到&#xff0c;时间长也忘掉了。但是如果…