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

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

  1. 9 14
  2. 1 2
  3. 1 3
  4. 1 4
  5. 2 3
  6. 3 4
  7. 4 5
  8. 4 6
  9. 5 6
  10. 5 7
  11. 5 8
  12. 6 7
  13. 6 8
  14. 7 8
  15. 7 9
  16. 3 3 4 9

输出样例:

  1. Cc(3)=0.47
  2. Cc(4)=0.62
  3. Cc(9)=0.35

  1. PTA 的数据之水我都没想到,可以说是非常之水了,floyd都能过了:
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define inf 99999999
  4. int n,m;
  5. const int maxn = 10010;
  6. int maps[maxn][maxn];
  7. int qus[maxn];
  8. double ans[maxn];
  9. void floyd()
  10. {
  11. for(int k=1; k<=n; k++)
  12. for(int i=1; i<=n; i++)
  13. for(int j=1; j<=n; j++)
  14. if(maps[i][k]<inf && maps[k][j]<inf && maps[i][j]>maps[i][k]+maps[k][j])
  15. maps[i][j]=maps[i][k]+maps[k][j];
  16. }
  17. int calcu(int x)
  18. {
  19. int ans = 0;
  20. for(int i=1;i<=n;i++)
  21. {
  22. if(x!=i) ans += maps[x][i];
  23. }
  24. return ans;
  25. }
  26. int main()
  27. {
  28. ios::sync_with_stdio(false);
  29. cin>>n>>m;
  30. for(int i=0;i<=n;i++)
  31. for(int j=0;j<=n;j++)
  32. maps[i][j] = inf;
  33. int a,b,k;
  34. while(m--){
  35. cin>>a>>b;
  36. maps[a][b] = 1;
  37. maps[b][a] = 1;
  38. }
  39. floyd();
  40. /*for(int i=1;i<=n;i++)
  41. for(int j=1;j<=n;j++)
  42. printf("%d%c",maps[i][j],j==n?'\n':' ');
  43. */
  44. cin>>k;
  45. for(int i=1;i<=k;i++)
  46. cin>>qus[i];
  47. for(int i=1;i<=k;i++)
  48. {
  49. //printf("%d\n",calcu(qus[i]));
  50. printf("Cc(%d)=%.2lf\n",qus[i],(n-1)*1.0/(calcu(qus[i]*1.0)));
  51. }
  52. }

  

PTA 社交网络图中结点的“重要性”计算(30 分)的更多相关文章

  1. PTA数据结构与算法题目集(中文) 7-36 社交网络图中结点的“重要性”计算 (30 分)

    PTA数据结构与算法题目集(中文)  7-36 社交网络图中结点的“重要性”计算 (30 分) 7-36 社交网络图中结点的“重要性”计算 (30 分)   在社交网络中,个人或单位(结点)之间通过某 ...

  2. 社交网络图中结点的“重要性”计算 (30 分) C++解法

    社交网络图中结点的"重要性"计算 (30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓 ...

  3. PTA 7-12(图) 社交网络图中结点的“重要性”计算 最短路

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

  4. 7-10 社交网络图中结点的“重要性”计算(30 point(s)) 【并查集+BFS】

    7-10 社交网络图中结点的"重要性"计算(30 point(s)) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络 ...

  5. 7-11 社交网络图中结点的“重要性”计算 (30 分)(Dijkstra算法)

    题意:  思路:对每个输入的点跑一遍dijkstra算法,然后对这个点到所有点的距离求和按公式输出就可以了. (这次尝试了用数组模拟链表来做最短路问题,刷新了自己对最短路的理解) 这里构造链表的过程我 ...

  6. PTA 7-2 二叉搜索树的结构(30 分)

    7-2 二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大 ...

  7. PTA 7-2 是否完全二叉搜索树(30 分) 二叉树

    将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果. 输入格式: 输入第一行给出一个不超过20的正整数 ...

  8. Excel中最精确的计算年龄的公式

    身份证算年龄 假设A1是身份证号所在单元格 =IF(MONTH(NOW())<INT(MID(A1,11,2)),INT(YEAR(NOW())-INT(MID(A1,7,4)))-1,IF(M ...

  9. dgraph解决社交关系中的正反向查找

    dgraph解决社交关系中的正反向查找 本篇介绍的是, 社交关系中的关注者与被关注者在dgraph中如何实现查找. 对dgraph的基本操作不太清楚的可以看看我之前写的博客 dgraph实现基本操作 ...

随机推荐

  1. JAVA_SE基础——69.Date类

    package cn.itcast.other; import java.text.ParseException; import java.text.SimpleDateFormat; import ...

  2. Eclipse常用快捷键总结

    Eclipse常用快捷键总结 CTRL+C(复制).CTRL+X(剪切).CTRL+Z(撤销).CTRL+F(查找).CTRL+H(搜索文件或字符串).CTRL+Y(重做).CTRL+/(双斜杠注释) ...

  3. Python内置函数(30)——super

    英文文档: super([type[, object-or-type]]) Return a proxy object that delegates method calls to a parent ...

  4. django的模型类管理器-----------数据库操作的封装

    模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除 ...

  5. Python/MySQL(三、pymysql使用)

    Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...

  6. django知识回顾

    一.web框架 1.web框架本质 众所周知,对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 1.浏览器(socket客户端) 2.发送IP和端 ...

  7. 0415关于通过FILEBEAT,LOGSTASH,ES,KIBNA实现数据的采集

    如何通过FILEBEAT,LOGSTASH,ES,KIBNA实现数据的采集总体参考网址:https://www.olinux.org.cn/elk/1157.html官方网址:https://www. ...

  8. iOS 私有API调用

    最近自己在做一个小程序,想实现一个一键设置手机壁纸的功能.但在iOS公开的API里找不到相关的方法,只能从私有API入手. 网上有不少教程,不过都不是很详细.从google和https://stack ...

  9. React Native(十五)——RN中的分享功能

    终于,终于,可以总结自己使用RN时的分享功能了-- 为什么呢?且听我慢慢道来吧: 从刚开始接触React Native(2017年9月中旬)就着手于分享功能,直到自己参与公司的rn项目开发中,再到现在 ...

  10. [原创软件]Maya报错窗口监测器

    软件主要功能: 监测Maya软件运行状态,如弹出报错窗口,则自动点击关闭 程序界面截图: 开发环境及语言: c# .NET Framework 4.0 Visual Studio 2015 更新日志: ...