PAT OJ.社交网络图中结点的“重要性”计算
2017-12-06 17:24
274 查看
PAT. 社交网络图中结点的“重要性”计算
描述在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以 理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其 在网络中体现的重要性也不尽相同。 “紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的 结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。在有N个结 点的网络中,结点vi 的“紧密度中心性”Cc(vi )数学上定义为vi 到其余所有结点vj (j≠i) 的最短距离d(v i ,vj )的平均值的倒数: 对于非连通图,所有结点的紧密度中心性都是0。 给定一个无权的无向图以及其中的一组结点,计算这组结点中每个结点的紧密度中心性。
输入
输入第一行给出两个正整数N和M,其中N≤10^4 是图中结点个数,顺便假设结点从1到N编号;M≤10^5是边的条 数。随后的M行中,每行给出一条边的信息,即该边连接的两个结点编号,中间用空格分隔。最后一行给出需要计 算紧密度中心性的这组结点的个数K(≤100)以及K个结点编号,用空格分隔。
输出
按照Cc(i)=x.xx的格式输出K个给定结点的紧密度中心性,每个输出占一行,结果保留到小数点后2位。
样例输入1
9 14 1 2 1 3 1 4 2 3 3 4 4 5 4 6 5 6 5 7 5 8 6 7 6 8 7 8 7 9 3 3 4 9
样例输出1
Cc(3)=0.47 Cc(4)=0.62 Cc(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[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; }
[b]2017年12月06日
4000
相关文章推荐
- 堆优化的迪杰斯特拉算法 - 社交网络图中结点的“重要性”计算
- 堆优化的迪杰斯特拉算法 - 社交网络图中结点的“重要性”计算
- PTA-数据结构 5-36 社交网络图中结点的“重要性”计算 (30分)
- 7-36 社交网络图中结点的“重要性”计算(30 分)
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- 7-10 社交网络图中结点的“重要性”计算(30 point(s)) 【并查集+BFS】
- 7-2 社交网络图中结点的“重要性”计算(30 分)
- PTA 7-12 社交网络图中结点的“重要性”计算
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- PTA 7-12(图) 社交网络图中结点的“重要性”计算(30 分) 30分代码
- PTA 社交网络图中结点的“重要性”计算(30 分)
- (floyd算法,即多源最短路算法)社交网络图中结点的“重要性”计算
- PTA 社交网络图中结点的“重要性”计算
- 5-36 社交网络图中结点的“重要性”计算 (30分)
- PTA-社交网络图中结点的“重要性”计算(并查集+bfs)
- 社交网络图中结点的“重要性”计算
- PAT6-09. 社交网络图中结点的“重要性”计算
- 7-7 社交网络图中结点的“重要性”计算(30 分)
- 复杂网络建模 社交网络图的一些计算代码(不全欢迎补充)MATLAB
- 社交网络图中结点的“重要性”计算(30 分)