码迷,mamicode.com
首页 > 其他好文 > 详细

[CSP-S模拟测试]:小P的生成树(数学+Kruskal)

时间:2019-10-15 10:08:10      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:col   输入   color   size   模拟   格式   font   无向图   定义   

题目描述

  小$P$是个勤于思考的好孩子,自从学习了最大生成树后,他就一直在想:能否将边权范围从实数推广到复数呢?可是马上小$P$就发现了问题,复数之间的大小关系并没有定义。于是对于任意两个复数$z_1,z_2$,小$P$定义$z_1<z_2$当且仅当$|z_1|<|z_2|$。
  现在,给出一张$n$个点$m$条边的简单无向带权图,小$P$想问你,如果按照他对复数大小的定义,这个图的最大生成树是什么?


输入格式

  输入的第一行为两个正整数$n$和$m$,分别表示这个无向图的点数和边数。
  接下来$m$行,每行四个整数$u,v,a,b(1\leqslant u,v\leqslant n,-1000\leqslant a,b\leqslant 1000)$,表示点$u$与点$v$之间有一条无向边,边权为$a+bi$。


输出格式

  输出仅有一个实数,它等于所有的最大生成树中所有边权之和的模长。
  实数四舍五入,保留六位小数。


样例

样例输入1:

3 3
1 2 1 3
2 3 2 2
3 1 3 1

样例输出1:

5.830952

样例输入2:

6 9
1 2 4 -1
2 3 4 1
3 4 -1 -5
1 5 -4 0
4 6 1 -6
2 6 -6 0
5 6 -7 5
2 4 7 1
1 4 -9 -5

样例输出2:

27.459060


数据范围与提示

样例$1$解释:

显然,从该图三条边中任取两条便可以构成一棵生成树,这三棵生成树的边权之和分别为$z_1=3+5i,z_2=4+4i,z_3=5+3i$,其中$|z_2|=\sqrt{32}<|z_1|=|z_3|=\sqrt{34}$。

[CSP-S模拟测试]:小P的生成树(数学+Kruskal)

标签:col   输入   color   size   模拟   格式   font   无向图   定义   

原文地址:https://www.cnblogs.com/wzc521/p/11675211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!