PAT OJ.社交网络图中结点的“重要性”计算
来源:互联网 发布:专业服装收银软件 编辑:程序博客网 时间:2024/06/05 16:29
PAT. 社交网络图中结点的“重要性”计算
描述
在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。在有N个结点的网络中,结点vi 的“紧密度中心性”Cc(vi )数学上定义为vi 到其余所有结点vj (j≠i) 的最短距离d(vi ,vj )的平均值的倒数:对于非连通图,所有结点的紧密度中心性都是0。给定一个无权的无向图以及其中的一组结点,计算这组结点中每个结点的紧密度中心性。
输入
输入第一行给出两个正整数N和M,其中N≤10^4 是图中结点个数,顺便假设结点从1到N编号;M≤10^5是边的条数。随后的M行中,每行给出一条边的信息,即该边连接的两个结点编号,中间用空格分隔。最后一行给出需要计算紧密度中心性的这组结点的个数K(≤100)以及K个结点编号,用空格分隔。
输出
按照Cc(i)=x.xx的格式输出K个给定结点的紧密度中心性,每个输出占一行,结果保留到小数点后2位。
样例输入1
9 141 21 31 42 33 44 54 65 65 75 86 76 87 87 93 3 4 9
样例输出1
Cc(3)=0.47Cc(4)=0.62Cc(9)=0.35
问题分析:
只需要求每个点到达其他点的最短距离,利用Floyd-Warshall算法,轻松解决。不过时间花费比N遍的Dijkstra算法要更高。
///代码实现,c++版本#include <bits/stdc++.h>using namespace std;int main(){ int N,M,K,b,c; cin>>N>>M; int **a=new int*[N+1];//申请空间来存储数据 for(int i=0;i<N+1;i++) a[i]=new int[(N+1)]; for(int i=1;i<=N;i++){//数据初始化处理 for(int j=1;j<=N;j++) { a[i][j]=9999999; } } while(M--) { cin>>b>>c; a[b][c]=a[c][b]=1; } for(int k=1;k<=N;k++)//Floyd-Warshall算法 for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) { if(i==j)continue; if(a[i][j]>(a[i][k]+a[k][j])) a[i][j]=a[i][k]+a[k][j]; } cin>>K; while(K--) { int tmp=0; cin>>b; for(int i=1;i<=N;i++) { if(i!=b)tmp=tmp+a[b][i]; } printf("Cc(%d)=%.02f\n",b,(N-1)*1.0/tmp); } return 0;}
2017年12月06日
阅读全文
0 0
- PAT OJ.社交网络图中结点的“重要性”计算
- PAT6-09. 社交网络图中结点的“重要性”计算
- PTA 社交网络图中结点的“重要性”计算
- PTA 7-12 社交网络图中结点的“重要性”计算
- 社交网络图中结点的“重要性”计算(30 分)
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- PTA-数据结构 5-36 社交网络图中结点的“重要性”计算 (30分)
- PTA-社交网络图中结点的“重要性”计算(并查集+bfs)
- 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- 7-36 社交网络图中结点的“重要性”计算(30 分)
- 7-7 社交网络图中结点的“重要性”计算(30 分)
- (floyd算法,即多源最短路算法)社交网络图中结点的“重要性”计算
- 7-2 社交网络图中结点的“重要性”计算(30 分)
- PTA 7-12(图) 社交网络图中结点的“重要性”计算(30 分) 30分代码
- 复杂网络建模 社交网络图的一些计算代码(不全欢迎补充)MATLAB
- 利用python、Gephi绘制人人的社交网络图
- 标题还没想好
- 【Scikit-Learn 中文文档】数据集加载工具
- 个人经验:team leader需要做的事和需要具备的能力
- LeetCode 221.Maximal Square 动态规划
- 自适应控制---极点配置自校正
- PAT OJ.社交网络图中结点的“重要性”计算
- 培训第二天 变量与常量的定义、使用,运算符
- 在Oracle关闭的状态下,如何修改参数文件spfile
- dubbo最全讲解
- Java语法糖系之泛型与类型擦除
- 思科路由器基础配置
- IntelliJ Idea各种技巧设置笔记和错误解决
- IntelliJ IDEA 学习笔记
- fiddler抓取手机请求