#Y1506. 最小圈

最小圈

1506:最小圈

【题目描述】

原题来自:HNOI 2009 考虑带权的有向图 G=(V,E)G=(V,E) 以及 w:ERw:E→R,每条边e=(i,j)(ij,iV,jV)e=(i,j)(i≠j,i∈V,j∈V)的权值定义为Wi,jW_{i,j},令 n=Vn=∣V |c=(c1,c2,,ck)(ciV)c=(c_1,c_2,⋯,c_k)(c_i∈V)GG 中的一个圈当且仅当 (ci,ci+1)(1i<k)(c_i,c_{i+1})(1≤i<k)(ck,c1)(c_k,c_1)​ 都在 EE 中,这时称 kk 为圈 cc 的长度。同时令 ck+1=c1c_{k+1}=c_1​​ ,并定义圈 c=(c1,c2,,ck)c=(c_1,c_2,⋯,c_k) 的平均值为:

μ(c)=1ki=1kwci,ci+1μ(c)=\frac{1}{k}\sum_{i=1}^{k}w_{c_i,c_{i+1}}

cc 上所有边的权值的平均值。 令 μ(c)=min{μ(c)}μ∗(c)=min\{μ(c)\}GG 中所有圈 cc 的平均值的最小值。现在的目标是:在给定了一个图 G=(V,E)G=(V,E) 以及 w:ERw:E→R 之后,请求出 GG 中所有圈 cc 的平均值的最小值 μ(c)=min{μ(c)}μ∗(c)=min\{μ(c)\}

【输入】

第一行包含两个正整数 nnmm,并用一个空格隔开,其中 n=V,m=En=∣V∣,m=∣E∣,分别表示图中有 nn 个顶点和 mm 条边; 接下来 mm 行,每行包含用空格隔开的三个数 i,j,wi,ji,j,w_{i,j}​​ ,表示有一条边 (i,ji,j) 且该边的权值为 wi,jw_{i,j}​​ 。 输入数据保证图 G=(V,E)G=(V,E) 连通,存在圈且有一个点能到达其他所有点。

【输出】

仅包含一个实数 μ=min{μ(c)}μ∗=min\{μ(c)\},要求输出到小数点后 88 位。

【输入样例】

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

【输出样例】

3.66666667

【提示】

样例输入2:

2 2
1 2 -2.9
2 1 -3.1

样例输出2:

-3.00000000

数据范围: 对于 20% 的数据,1n100,1m10001≤n≤100,1≤m≤1000; 对于 40% 的数据,1n1000,1m50001≤n≤1000,1≤m≤5000; 对于 100% 的数据,1n3000,1m104,wi,j1071≤n≤3000,1≤m≤10^4,∣w_{i,j}∣≤10^7​​ 。 输入保证 1i,jn1≤i,j≤n