【题目链接】

点击打开链接

【算法】

首先,跑floyd,计算最短路和最短路径数

然后,计算答案,枚举k,s,t,若dist[s][k] + dist[k][t] = dist[s][t],

那么,点对(s,t)对答案k的”贡献“就是c[s][k]*c[k][t]/c[s][t]

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 110
const int INF = 1e9; int i,j,n,m,u,v,w;
double ans[MAXN];
long long g[MAXN][MAXN],c[MAXN][MAXN]; inline void floyd()
{
int i,j,k;
for (k = ; k <= n; k++)
{
for (i = ; i <= n; i++)
{
if (i == k) continue;
for (j = ; j <= n; j++)
{
if (i == j || k == j) continue;
if (g[i][k] + g[k][j] < g[i][j])
{
g[i][j] = g[i][k] + g[k][j];
c[i][j] = c[i][k] * c[k][j];
}
else if (g[i][k] + g[k][j] == g[i][j]) c[i][j] += c[i][k] * c[k][j];
}
}
}
}
inline void calc()
{
int k,s,t;
for (k = ; k <= n; k++)
{
for (s = ; s <= n; s++)
{
for (t = ; t <= n; t++)
{
if (s == t) continue;
if (g[s][k] + g[k][t] == g[s][t])
{
if (c[s][t])
ans[k] += 1.0 * c[s][k] * c[k][t] / c[s][t];
}
}
}
}
} int main() { scanf("%d%d",&n,&m);
for (i = ; i <= n; i++)
{
for (j = ; j <= n; j++)
{
g[i][j] = INF;
}
}
while (m--)
{
scanf("%d%d%d",&u,&v,&w);
g[u][v] = g[v][u] = w;
c[u][v] = c[v][u] = ;
} floyd();
calc(); for (i = ; i <= n; i++) printf("%.3lf\n",ans[i]); return ; }

【NOI 2007】 社交网络的更多相关文章

  1. [NOI 2007]社交网络

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

  2. 解题:NOI 2007 社交网络

    题面 先跑一边Floyd乘法原理统计任意两点间最短路数目,然后再枚举一次按照题意即可求出答案,会写那道JSOI2007就会这个 #include<cstdio> #include<c ...

  3. 【BZOJ 1494】【NOI 2007】生成树计数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1494 这道题..因为k很小,而且我们只关心连续的k个节点的连通性,所以把连续的k个点轮廓线上的连通性 ...

  4. 【BZOJ 1492】【NOI 2007】货币兑换Cash

    这是道CDQ分治的例题: $O(n^2)$的DP: f [1]←S* Rate[1] / (A[1] * Rate[1] + B[1]) Ans←SFor i ← 2 to n For j ←1 to ...

  5. 线性代数(矩阵乘法):NOI 2007 生成树计数

    这道题就是深搜矩阵,再快速幂. #include <iostream> #include <cstring> #include <cstdio> #include ...

  6. [NOI 2007]货币兑换Cash

    Description 题库链接 (按我的语文水平完全无 fa♂ 概括题意,找了 hahalidaxin 的题意简述... 有 \(AB\) 两种货币,每天可以可以付 \(IP_i\) 元,买到 \( ...

  7. NOI 2007 货币兑换Cash (bzoj 1492) - 斜率优化 - 动态规划 - CDQ分治

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

  8. dp式子100个……

    1.        资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2------01背包问题F[I,j]:=max(f[i- ...

  9. dp方程

    1.        资源问题1 -----机器分配问题 F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2 ------01背包问题   F[I,j]:=ma ...

随机推荐

  1. buf.values()

    buf.values() 返回:{Iterator} 创建并返回一个包含 Buffer 值(字节)的迭代器.当 Buffer 使用 for..of 声明时将自动调用该函数. const buf = B ...

  2. 【转载】Hadoop NameNode 高可用 (High Availability) 实现解析

    转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/ NameNode 高可用整体架构概述 在 Had ...

  3. 3W法则-学习Docker

    一.前言       5W1H法则是在一次面试中学习到的,后来在工作也开始使用这种东西,虽然最后没去那家公司,但是也是学习到了,关注开这些东西以后,也发现了一些简化版的3W法则,最近公司也要搞Doce ...

  4. 添物不花钱学JavaEE(基础篇)-综述

    JavaEE由一堆基础标准组成.JavaEE开发一般需要如下工具和掌握如下内容: Java环境 Eclipse或其他开发工具 Tomcat容器或类似软件 Jsp/Servlet/Web/JDBC的掌握 ...

  5. [luoguP1328] 生活大爆炸版石头剪刀布(模拟)

    传送门 虽然是模拟,但是我们可以用矩阵保存结果,来是其更加简便. ——代码 #include <cstdio> #include <iostream> ][] = {{, , ...

  6. CRT(secureCRT)中文显示研究&Linux中文字符显示

    关于secureCRT设置编码: 基本上只需要设置crt字符编码与远程服务器一致就可以了.要注意的是,有时设置完之后要重启secureCRT, 不然不会生效.

  7. 【HDOJ3341】Lost's revenge(AC自动机,DP)

    题意:给出一个n个模式串,一个目标串,问把目标串重新排位最多能产生多少个模式串,可以重叠且所有串只包含A C G T. n<=10,len[i]<=10 len(s)<=40 Cas ...

  8. 2015山东信息学夏令营 Day4T3 生产

    2015山东信息学夏令营 Day4T3 生产 [题目描述] 工厂为了生产一种复杂的产品,给各个生产部门制定了详细的生产计划.那么,就经常会有生产部门要把产品送到另一个生产部门作为原料.这是一个注重产品 ...

  9. Ubuntu 16.04安装JMeter测试工具

    JMeter是Java的测试工具,由Apache开发. 同样,JMeter是跨平台的. 下载: http://jmeter.apache.org/download_jmeter.cgi 安装: 7z ...

  10. Eclipse编辑YAML插件-YEdit

    官网:https://github.com/oyse/yedit 离线版本:(链接: https://pan.baidu.com/s/1b1j2gQ 密码: wyyb) 安装方法:直接复制JAR包到P ...