P0960

[NOI2007]社交网络

[NOI2007]社交网络

在社交网络的研究中,我们常常使用图论概念解释一些社会现象。

一个社交圈中有 nn 个人,人与人之间有不同程度的关系。我们将这个关系网络表示为一个包含 nn 个结点的加权无向图:若两个不同的人互相认识,则在其对应结点之间连接一条无向边,并赋予一个正数权值 cc。cc 越小,表示两个人之间的关系越密切。

我们用对应结点之间的最短路长度衡量两个人 ss 和 tt 之间的关系密切程度。最短路径上的其他结点为 ss 和 tt 的联系提供了便利,因此这些结点对于二者之间的联系具有一定的重要程度。

考虑到两个结点之间可能存在多条最短路径,定义 Cs,tC_{s,t} 表示从 ss 到 tt 的不同最短路径数,Cs,t(v)C_{s,t}(v) 表示从 ss 到 tt 且经过结点 vv 的最短路径数。结点 vv 在社交网络中的重要程度定义为

I(v)=∑1≤s,t≤ns≠t, s≠v, t≠vCs,t(v)Cs,t。I(v)=\sum_{\substack{1\le s,t\le n\\s\ne t,\ s\ne v,\ t\ne v}} \frac{C_{s,t}(v)}{C_{s,t}}。

上述求和按照有序点对 (s,t)(s,t) 进行。

为了保证 I(v)I(v) 和 Cs,t(v)C_{s,t}(v) 有意义,需要处理的社交网络均为连通无向图,即任意两个结点之间都存在一条有限长度的最短路径。

给定一张描述社交网络的加权无向图,请求出每个结点的重要程度。

输入格式

第一行包含两个整数 nn 和 mm,分别表示社交网络中的结点数和无向边数。所有结点依次编号为 11 到 nn。

接下来 mm 行,每行包含三个整数 aa、bb、cc,表示结点 aa 与结点 bb 之间存在一条权值为 cc 的无向边。

任意两个结点之间至多有一条无向边,图中不存在自环。

输出格式

输出共 nn 行,每行一个实数,保留小数点后 33 位。

第 ii 行表示结点 ii 在社交网络中的重要程度。

样例输入

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

样例输出

1.000
1.000
1.000
1.000

样例解释

对于结点 11,只有从结点 22 到结点 44 和从结点 44 到结点 22 的最短路径可能经过它。

结点 22 与结点 44 之间共有 22 条最短路径,其中有 11 条经过结点 11。因此,结点 11 的重要程度为

12+12=1。\frac{1}{2}+\frac{1}{2}=1。

由于图具有对称性,其余 33 个结点的重要程度也均为 11。

数据范围

  • n≤100n\le 100;
  • m≤4500m\le 4500;
  • 边权 cc 为正整数,且 1≤c≤10001\le c\le 1000;
  • 输入的无向图保证连通;
  • 任意两个结点之间的最短路径数不超过 101010^{10}。

来源与许可

本题为 NOI 2007 试题「社交网络」,题面与测试数据整理自 BZOJ。

样例 1

输入

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

输出

1.000
1.000
1.000
1.000