OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1363--道路修建

1363: 道路修建

时间限制: 4 Sec  内存限制: 128 MB
提交: 113  解决: 41
[提交] [状态] [讨论版] [命题人:]

题目描述



包工头吴某最近在开发工地,他的任务就是将n个建筑物连接为一个整体(为了简化问题规定只需要修建 n - 1 条边使得建筑物连为整体),即任意两个建筑物都可以相互到达(可能经过多条边),并且现在有m种修建道路的方案,每条道路都存在一个收益值a和花费值b,但是包工头是个贪心的家伙,他希望完成任务的同时希望 suma[i] / sumb[i] 最大化。 (suma[i]表示选择修建道路的收益 a[i] 总和,sumb[i]同理)

输入

第一行输入两个整数n,m,表示有n个建筑物,m种修建道路的方案。(1 <= n <= 10000,1 <= m <= 100000)
接着输入m行,每个四个整数u,v,a,b,表示修建u到v的道路的收益值为a,花费值为b。(注意道路为无向边)
(1 <= u,v <= n;1 <= a,b <= 10000)

输出

suma[i] / sumb[i]最大化的值,要求保留5位小数。
如果无法使n个建筑连为一个整体,则输出-1。

样例输入 Copy

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

样例输出 Copy

0.90000

来源/分类