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

-------------------------------------------------------------------------------------------

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn = 109;
const int INF = 0X3F3F3F3F;
int N, d[maxn][maxn];
ll cnt[maxn][maxn];
int main() {
int m;
scanf("%d%d", &N, &m);
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
d[i][j] = INF, cnt[i][j] = 0;
d[i][i] = 1;
cnt[i][i] = 1;
}
while(m--) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
u--, v--;
d[u][v] = d[v][u] = w;
cnt[u][v] = cnt[v][u] = 1;
}
for(int k = 0; k < N; k++)
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(d[i][k] + d[k][j] < d[i][j]) {
d[i][j] = d[i][k] + d[k][j];
cnt[i][j] = cnt[i][k] * cnt[k][j];
} else if(d[i][k] + d[k][j] == d[i][j])
cnt[i][j] += cnt[i][k] * cnt[k][j];
for(int k = 0; k < N; k++) {
double ans = 0;
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++) if(d[i][j] != INF)
if(d[i][k] + d[j][k] == d[i][j])
ans += (double) cnt[i][k] * cnt[j][k] / cnt[i][j];
printf("%.3lf\n", ans);
}
return 0;
}

-------------------------------------------------------------------------------------------

1491: [NOI2007]社交网络

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 1271  Solved: 727
[Submit][Status][Discuss]

Description

Input

Output

输出文件包括n 行,每行一个实数,精确到小数点后3 位。第i 行的实数表 示结点i 在社交网络中的重要程度。

Sample Input

4 4
1 2 1
2 3 1
3 4 1
4 1 1

Sample Output

1.000
1.000
1.000
1.000

HINT


为1

Source

转载于:https://www.cnblogs.com/JSZX11556/p/5147891.html

BZOJ 1491: [NOI2007]社交网络( floyd )相关推荐

  1. bzoj 1491: [NOI2007]社交网络

    Description =========== Input ===== ** Output ** 输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要 ...

  2. 1491: [NOI2007]社交网络

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

  3. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2343  Solved: 1266 [Submit][Status][Discuss] Descrip ...

  4. 1491. [NOI2007]社交网络【最短路计数】

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

  5. bzoj1491: [NOI2007]社交网络

    跑一跑floyed就可以了.然后因为if(dis>dis+dis)后面跟着的是if(dis==dis+dis)然后计算的方案数一直多了...应该是else ifwoc #include<c ...

  6. [NOI2007]社交网络

    题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我 们将这个关系网络对 ...

  7. BZOJ 1492: [NOI2007]货币兑换Cash [CDQ分治 斜率优化DP]

    传送门 题意:不想写... 扔链接就跑 好吧我回来了 首先发现每次兑换一定是全部兑换,因为你兑换说明有利可图,是为了后面的某一天两种卷的汇率差别明显而兑换 那么一定拿全利啊,一定比多天的组合好 $f[ ...

  8. 斜率优化(CDQ分治,Splay平衡树):BZOJ 1492: [NOI2007]货币兑换Cash

    Description Input 第一行两个正整数N.S,分别表示小Y 能预知的天数以及初始时拥有的钱数. 接下来N 行,第K 行三个实数AK.BK.RateK,意义如题目中所述 Output 只有 ...

  9. bzoj 1492: [NOI2007]货币兑换Cash

    Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...

最新文章

  1. 木马——本质就是cs socket远程控制,反弹木马是作为c端向外发起网络请求
  2. 前端开发工具 vscode 使用技巧篇:控制台由powershell切换为cmd方法,windows下新旧版控制台cmd与powershell互切方法
  3. Show Attend and Tell的实现代码中的python知识学习
  4. Pandas数据排序,人人都能学会的几种方法
  5. 全文索引 - Pomelo.EFCore.MySql
  6. 蓝桥杯2014届试题9题 小朋友排队(树状数组+类逆序对)
  7. matlab双立方插值法_双三次插值(Bicubic interpolation)缩放图片
  8. 全球以太网交换机和路由器市场:谁领跑?
  9. Android 4.4 NotificationManagerService使用详解与原理分析(二)__原理分析
  10. 龙卷风路径_如何设置龙卷风路径
  11. 视频格式转换工具,用到ws.schild.jave,之前是用的it.sauronsoftware.jave,作者已经不维护了
  12. 基于java的企业人事管理系统的设计与实现(含源文件)
  13. Android开发Linux shell命令
  14. c语言中isupper用法,isupper - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  15. Stacked Hourglass笔记源码(一)网络结构
  16. 【科技视野】微信小程序真的是App的终结者?
  17. 中国大学moocpython答案查询_python中国大学mooc网课答案
  18. Kubernetes系列(一)基于CentOS8部署Kubernetes1.19集群
  19. Hibernate报错 Cannot add foreign key constraint
  20. fedora11 文泉驿micro-hei字体设置

热门文章

  1. 文件逆顺输出到新文件(三种方案)
  2. 重学java基础第十九课:helloWorld详解
  3. 前端学习(3343):ant design中导航使用
  4. React开发(112):不要写多余的select
  5. 前端学习(3185):ant-design的button介绍按钮属性
  6. 前端学习(2902):javascript浏览器的历史
  7. 前端学习(2777):组件之间的通讯方式
  8. 工作102:设置url实现查询 秒呀
  9. 前端学习(1852)vue之电商管理系统电商系统托管码云上
  10. 前端学习(1816):前端面试题之作用域和值类型传递的参数1