这个题一开始可能有点懵逼,但手玩一会就会好很多

首先这些小问题都是可以独立解决的

1:求多源最短路  —— floyd

2:怎么求每个v? ——枚举v,在枚举i、j。。而且还可以通过f判断在不在最短路上

3:求两点间路径总数 ——  相等直接在floyd上加新的组合、不相等直接覆盖

要证明这么做的正确性,可以用floyd的正确性

反证法:

因为路径条数和最短路同时更新,所以如果这么做会有遗漏,则说明两点之间的距离floyd没有更新到,    说明最短路是错的,,   不成立

所以是正确的、、(不是很清楚原理就只能用正确性证了、、

码:

#include<iostream>
#include<cstdio>
using namespace std;
double f[202][202],cnt[202][202],ans[202];
int a,b,c,n,m,i,j,k;
int main()
{for(i=0;i<=200;i++)for(j=0;j<=200;j++)f[i][j]=10000000009;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);f[a][b]=f[b][a]=c;cnt[a][b]=cnt[b][a]=1;
}   for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i==j||j==k||i==k)continue;if(f[i][k]+f[k][j]==f[i][j])cnt[i][j]+=cnt[i][k]*cnt[k][j];    if(f[i][k]+f[k][j]<f[i][j]){f[i][j]=f[i][k]+f[k][j];cnt[i][j]=cnt[i][k]*cnt[k][j];   }   } for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i==j||i==k||j==k)continue;if(f[i][k]+f[k][j]==f[i][j]){ans[k]+=cnt[i][k]/cnt[i][j]*cnt[k][j];}}for(i=1;i<=n;i++)printf("%.3lf\n",ans[i]);
}

2017.9.25 社交网络 思考记录相关推荐

  1. 2017.9.5 组合数学 思考记录

    这题风格很正统.所以我感觉如果自己能不靠题解把这个题做出来,那应该就学得不错了.. 于是在历尽千辛万苦之后,终于1A了.(事后证明 结论题的结论强行无视 乱搞也是有可能AC的) xym&ISA ...

  2. 2017.9.4 Nim 思考记录

    只要知道nim的结论   这题就是链剖板子题.1A 注意bzoj 的  换行符是     \r!!      \r!!      \r!! 就说一下链剖的易错点吧: 1.记录父节点.sz.深度 2.当 ...

  3. 2017.8.21 弦论 思考记录

    自己a的第一道sam  虽然是板子题 要求第k小的串,分两种情况: 一种是包括重复的: 包括重复的即包括right的size,所以每个点向它的父节点贡献自己的size即可,因为这个父指针和ac自动机的 ...

  4. 2017.10.28 排序 思考记录

    这个题有一种套路,就是大小关系转化成01串,这样就变成了二分检验问题,, 就是把排序变成区间修改,然后单点查询.. 把所有比他小的赋成0,比他大的赋成1 然后判断要求位是0还是1来判断答案与当前值的大 ...

  5. 2017.10.28 压缩 思考记录

    这个题首先要知道M和R不是栈的搭配,是贪心的搭配,,就是向左找到第一个M.. 如 abababab cdcdcdcd abababab cdcdcdcd   = abRRcdcdcdcdR != Ma ...

  6. 2017.10.6 单词 思考记录

    少有的会做的ac自动机题 .这个题是匹配模式串. 所以就不需要匹配的过程,只需要建出fail树,然后直接拓扑 由于每次加进去一个单词,这个单词的每一个字母都有可能作为最后一个字母影响他的失配,所以词路 ...

  7. 2017.10.5 高速公路 思考记录

    ..一开始死活不知道样例8/3是怎么算出来的.. 后来才发现右端点要-1.. 这个题说是期望,但因为每个点的概率相同,所以直接求和然后除就可以了 维护每个区间的答案,听说直接维护答案很难写,,感觉还可 ...

  8. 2017.10.1 蚯蚓 思考记录

    现在看来这个题真心不难. 如果能保证一个从大到小的顺序的话,对所有的数依次进行相同比例的分裂操作,左右两边一定也是单调的 由于每次要+q,等价于取出元素-q,这在式子里是不影响大小关系的 所以就sor ...

  9. 2017.9.28 产品加工 思考记录

    很早之前做的了.发现bzoj上竟然没提交过 于是又重推了一遍 首先这个ti<=5是用来让n^2的复杂度降一降的, 然后就考虑装每个物品之后各个机器的耗时,同时,对于一个A机器的耗时,可能会有多个 ...

最新文章

  1. Aooms_基于SpringCloud的微服务基础开发平台实战_002_工程构建
  2. 【STM32】端口复用和重映射,完全重映射,部分重映射
  3. Linux系统中sysctl命令详解 sysctl -p、sysctl -a、sysctl -w
  4. 哎!又要过年了,程序员最怕问到什么?
  5. asp.net core策略授权
  6. 解决idea启动项目报错:Unable to open debugger port(127.0.0.1:60157):java.net.SocketExceptionsocket closed
  7. win10+vs2015+opencv3配置
  8. 百度富文本php配置方法
  9. 原理探究——空间平滑MUSIC算法
  10. Linux下yum命令及软件的安装
  11. 数字图像处理的技术方法和应用
  12. 【经验贴】Java搭建一个以yy直播为主的直播聊天室
  13. 16 医疗挂号系统_【预约下单】
  14. linux搭建智能dns步骤,Linux下智能DNS配置过程
  15. python画球鞋_基于Python爬虫原理的篮球鞋选择程序的设计与实现
  16. linux内核源码分析之CFS调度
  17. 【SVN】SVN是什么?怎么使用?
  18. 笔记本 电池换电芯 详解
  19. 7. STM32——定时器中断(1秒闪烁灯)
  20. 网络基本功:三次握手及四次挥手

热门文章

  1. MongoDB增删改
  2. vb combox获取选定index_Python-新闻评论获取
  3. 利用pandas,pyplot 绘制柱状图
  4. Java获取数据类型
  5. 公共端接正极还是负极_被称为下一代动力电池的固态电池,到底明年还是十年后才能量产?...
  6. php system 执行失败,php执行system()函数没有任何反应
  7. php饿死,中国第一懒人:父母去世后,23岁的他饿死家中
  8. python统计行号_用Python实现两个文件的不同行的编号
  9. 【2020-06-16】CentOS8下yum安装nginx,systemctl start nginx报错undefined symbol: FT_Done_MM_Var
  10. 【爬虫】毕设学习记录:python爬取静态网页(只爬取单页)