5-36 社交网络图中结点的“重要性”计算 (30分)

原创 2016年08月30日 11:35:08

5-36 社交网络图中结点的“重要性”计算 (30分)

在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。

“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在该网络的传播过程中有更重要的价值。在有NNN个结点的网络中,结点vi​​的“紧密度中心性”Cc(vi)数学上定义为vi​​到其余所有结点vj​​ (j≠i) 的最短距离d(vi,vj)的平均值的倒数:

对于非连通图,所有结点的紧密度中心性都是0。

给定一个无权的无向图以及其中的一组结点,计算这组结点中每个结点的紧密度中心性。
输入格式:

输入第一行给出两个正整数N和M,其中N(104​​)是图中结点个数,顺便假设结点从1到N编号;M(105​​)是边的条数。随后的M行中,每行给出一条边的信息,即该边连接的两个结点编号,中间用空格分隔。最后一行给出需要计算紧密度中心性的这组结点的个数K(≤100)以及K个结点编号,用空格分隔。
输出格式:

按照Cc(i)=x.xx的格式输出K个给定结点的紧密度中心性,每个输出占一行,结果保留到小数点后2位。
输入样例:

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

输出样例:

Cc(3)=0.47
Cc(4)=0.62
Cc(9)=0.35

思路
关键词:紧密中心性(不过题目也已经解释的很清楚了,另外百度神马的也没什么用)
总之在计算紧密中心性之前记得验证是否是连通图!

点击访问 PTA-测验

#include <stdio.h>
#include<stdlib.h>
#define FULL 100001
/* 评测结果
时间              结果  得分  题目  编译器     用时(ms)  内存(MB)  用户
2016-08-03 07:57    部分正确    28  5-36    gcc     2726    5   569985011
测试点结果
测试点         结果  得分/满分   用时(ms)  内存(MB)
测试点1    答案正确    18/18   5               1
测试点2    答案正确    5/5     1               1
测试点3    答案正确    2/2     1               1
测试点4    答案正确    5/5     2726            5
查看代码*/


int main() {
    int n,m;
    scanf("%d%d",&n,&m);
    int**V=(int**)malloc(sizeof(int*)*(n+1));
    for(int i=1; i<=n; i++) {
        V[i]=(int*)malloc(sizeof(int)*(n+1));
        for(int j=1; j<=n; j++) {
            if(i==j)V[i][j]=0;else
            V[i][j]=FULL;
        }
    }
    while(m--) {
        int a,b;
        scanf("%d %d",&a,&b);
        V[a][b]=1;
        V[b][a]=1;
    }
    for(int k=1; k<=n; k++) {
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=n; j++) {
                if(V[i][j]>V[i][k]+V[k][j])
                    V[i][j]=V[i][k]+V[k][j];
            }
        }
    }
//  for(int i=1; i<=n; i++) {
//      for(int j=1; j<=n; j++) {
//          printf(" %d",V[i][j]);
//      }
//      printf("\n");
//  }




    scanf("%d",&m);
    for(int k=0; k<m; k++) {

        int a;
        scanf("%d",&a);

        printf("Cc(%d)=",a);
        int sum=0;
        for(int i=1; i<=n; i++) {
            if(V[a][i]==FULL) {
                sum=0;
                break;
            } else sum+=V[a][i];
        }
        if(sum!=0)
            printf("%.2lf\n",(n-1)*1.0/sum);
        else printf("0.00\n");

    }




    return 0;
}


版权声明:写这些东西还是问了交流进步,如果你有不同的方法、见解,欢迎交流分享。文章中附的代码只传达当时我的一种做法,并非我认为最好的。

PAT6-09. 社交网络图中结点的“重要性”计算

用bfs计算无权图的最短路径 #include #include #include #include #include using namespace std; const int N=10005,...
  • u013827143
  • u013827143
  • 2014年06月17日 00:49
  • 1125

PTA 7-12(图) 社交网络图中结点的“重要性”计算(30 分) 30分代码

跑 K 遍 dijkstra ,每次可以求得点 给定点到每个点的最小距离 判断非联通的的话 就是有一个点到 给定点的距离 是 INF (注:博客作为交流使用,切勿抄袭应付作业) #i...
  • xiang_6
  • xiang_6
  • 2017年10月04日 20:11
  • 416

5-36 社交网络图中结点的“重要性”计算 (30分)

5-36 社交网络图中结点的“重要性”计算   (30分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点...
  • qq_34125999
  • qq_34125999
  • 2016年05月07日 13:55
  • 1721

7-2 社交网络图中结点的“重要性”计算(30 分)

题目链接 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的...
  • qq_37708702
  • qq_37708702
  • 2017年12月08日 14:50
  • 70

社交网络图挖掘5--图的邻居性质

有向图和邻居 图的直径 传递闭包和可达性有向图和邻居 有向图(directed graph):是指一个包含节点集合和有向边集合的图,每条有向边写成u→vu\rightarrow v,其中uu为有向边的...
  • liveway6
  • liveway6
  • 2017年10月26日 12:17
  • 206

5-13 词频统计 (30分)

5-13 词频统计   (30分) 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。 所谓“单词”,是指由不超过80个单词字符组成的连续字符串...
  • z6_6z
  • z6_6z
  • 2017年08月07日 14:55
  • 194

5-36 社交网络图中结点的“重要性”计算 (30分)

5-36 社交网络图中结点的“重要性”计算   (30分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点...
  • m0_37286282
  • m0_37286282
  • 2017年06月16日 09:53
  • 237

7-36 社交网络图中结点的“重要性”计算(30 分)

7-36 社交网络图中结点的“重要性”计算(30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间...
  • lyw_321
  • lyw_321
  • 2017年09月27日 12:04
  • 365

PTA 7-12 社交网络图中结点的“重要性”计算

在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其...
  • hao_zong_yin
  • hao_zong_yin
  • 2017年10月25日 00:47
  • 132

PTA 社交网络图中结点的“重要性”计算

在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其...
  • a664607530
  • a664607530
  • 2017年03月10日 18:38
  • 171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:5-36 社交网络图中结点的“重要性”计算 (30分)
举报原因:
原因补充:

(最多只允许输入30个字)