题目链接:戳我

就是在floyd计算dis的时候,顺便把两点之间最短路的个数也计算了qwqwq

\(sum[i][j]=\sum sum[i][k]*sum[k][j]\)

代码如下:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. #include<cmath>
  6. #define MAXN 310
  7. using namespace std;
  8. int n,m;
  9. long long dis[MAXN][MAXN],sum[MAXN][MAXN];
  10. double ans[MAXN];
  11. int main()
  12. {
  13. #ifndef ONLINE_JUDGE
  14. freopen("ce.in","r",stdin);
  15. #endif
  16. scanf("%d%d",&n,&m);
  17. memset(dis,0x3f,sizeof(dis));
  18. for(int i=1;i<=m;i++)
  19. {
  20. int u,v,w;
  21. scanf("%d%d%d",&u,&v,&w);
  22. dis[u][v]=dis[v][u]=w;
  23. sum[u][v]=sum[v][u]=1;
  24. }
  25. for(int k=1;k<=n;k++)
  26. for(int i=1;i<=n;i++)
  27. for(int j=1;j<=n;j++)
  28. {
  29. if(dis[i][j]>dis[i][k]+dis[k][j])
  30. dis[i][j]=dis[i][k]+dis[k][j],sum[i][j]=sum[i][k]*sum[k][j];
  31. else if(dis[i][j]==dis[i][k]+dis[k][j])
  32. sum[i][j]+=sum[i][k]*sum[k][j];
  33. }
  34. for(int k=1;k<=n;k++)
  35. for(int i=1;i<=n;i++)
  36. for(int j=1;j<=n;j++)
  37. {
  38. if((i==j)||(i==k)||(j==k)) continue;
  39. if(dis[i][k]+dis[k][j]==dis[i][j])
  40. ans[k]+=1.0*sum[i][k]*sum[k][j]/sum[i][j];
  41. }
  42. for(int i=1;i<=n;i++) printf("%.3lf\n",ans[i]);
  43. return 0;
  44. }

BZOJ100题纪念!

NOI2007 社交网络的更多相关文章

  1. BZOJ 1491 [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1159  Solved: 660[Submit][Status] ...

  2. 图论(floyd算法):NOI2007 社交网络

    [NOI2007] 社交网络 ★★   输入文件:network1.in   输出文件:network1.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 在社交网络( ...

  3. BZOJ 1491: [NOI2007]社交网络( floyd )

    floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...

  4. 1491: [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 881  Solved: 518[Submit][Status] ...

  5. 洛谷 P2047 [NOI2007]社交网络 解题报告

    P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ...

  6. 【BZOJ1491】[NOI2007]社交网络 Floyd

    [BZOJ1491][NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子 ...

  7. [BZOJ1491][NOI2007]社交网络 floyd

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2196  Solved: 1170[Submit][Status ...

  8. 洛谷——P2047 [NOI2007]社交网络

    P2047 [NOI2007]社交网络 $Floyd$,一眼看到就是他(博主是不小心瞄到了这个题的标签吧qwq) 这个题目只要预处理出$S$到$T$的最短路的条数即可,类似$Spfa$的更新方法 如果 ...

  9. [NOI2007]社交网络(最短路)

    [NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之 ...

  10. BZOJ1491:1491: [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2204  Solved: 1175[Submit][Status ...

随机推荐

  1. Linux常用命令----基本文件系统常用命令

    1.查看当前工作目录---pwd sunny@sunny-ThinkPad-T450:~$ pwd /home/sunny sunny@sunny-ThinkPad-T450:~$ cd Worksp ...

  2. addin1

    Mono.addin是一个插件框架,更多信息请访问 http://monoaddins.codeplex.com/

  3. cdh 安装步骤

    http://www.cnblogs.com/jasondan/p/4011153.html 关于CDH和Cloudera Manager CDH (Cloudera's Distribution, ...

  4. java 蓝桥杯算法提高 _2最大最小公倍数

    解题思路: 1. n是奇数,那就最大的三个数相乘2. n是偶数,得分两种情况了, ①如果n不是3的倍数,那就s=n*(n-1)*(n-3)---n与n-2同为偶数,故排除一个n-2: ②n是3的倍数, ...

  5. Linux 安装elasticsearch、node.js、elasticsearch-head

    前提:下载es的安装包 官网可以下载 es官网 安装elasticsearch 1 新建两个文件夹 一个存放安装文件,一个存放解压后的文件 mkdir -p /export/software //存放 ...

  6. Java-Excel文件读取

    import java.io.File; import java.io.IOException; import org.testng.annotations.DataProvider; import ...

  7. spring4-3-AOP-面向切面编程

    AOP常用的两个用户:日志和验证.也就是程序追踪和数据验证. 直接使用代码实现,距离如下:

  8. avalonjs 笔记

    1>复选卡框和单选框 复选卡框 监控已选框的数组,即通过属性监控来判断是否全选 <div ms-controller="test"> <ul> < ...

  9. RTX Server SDK跨服务器

    反向单点登录RTX,即通过腾讯通登录到其他的系统,登录腾讯通后其他的系统不用输入用户名和密码即可登录.可能有二种情况.腾讯通和其他系统在同一台服务器上或在不同的服务器上.要调用腾讯通的登录验证接口的系 ...

  10. 朴素贝叶斯算法的python实现-乾颐堂

    算法优缺点 优点:在数据较少的情况下依然有效,可以处理多类别问题 缺点:对输入数据的准备方式敏感 适用数据类型:标称型数据 算法思想: 朴素贝叶斯 比如我们想判断一个邮件是不是垃圾邮件,那么我们知道的 ...