POJ 2728 最优比例生成树
来源:互联网 发布:linux下svn服务器搭建 编辑:程序博客网 时间:2024/05/16 08:03
题意:给定三维的点,求这样一棵树,使得高度差的和与水平距离的和的比值最小
这题是很显然的最优比例生成树,不能用贪心求出cost/len,再建MST。
详细做法见http://hi.baidu.com/zzningxp/blog/item/b2d1b4ec1f8bbc2262d09fc9.html
代码:第一次写,绝大多数参考http://www.cppblog.com/Yuan/archive/2010/04/15/112720.aspx
最优比例树总结(转载)
每条边有两个权值,一个费用h一个长度l,求连通整个图的最小r r=总费用/总长度
r=(h1*x1+h2*x2*.....hn*xm)/(l1*x1+l2*x2+...ln*xm) 最小,其中x取0,1表示边不在或在树中
直接列出两种解法:
(1)二分比率r 将原图边权值修改为h-r*l ,求最小生成树,如果大于0,则可放大r,否则缩小r ,
(2) 01分数规划 Dinkelbach 算法,首先任选可以构造一棵树的n-1条边,numerator表示费用总和,denominator表示长度总和,r*表示最后最优解,再构造一个当前的最优解r=numerator/denominator ,把r作为比例同样将原图边权修改为h-r*l ,作一次MST,结束时可得到另一个最优解r' ,r'会无穷地向最优解r*收敛,根据题目定义当fabs(r*-r')<1e-6 则break ;最后r*=r' ,时间复杂度为O(MST)*min(n^2,log(n*m)),这个算法是可行的,中间N多证明过程略...
(转载自:http://www.cnblogs.com/north_dragon/archive/2010/06/11/1756594.html)
- POJ 2728 最优比例生成树
- [POJ 2728] 最优比例生成树
- poj 2728 最优比例生成树
- poj 2728 Desert King(最优比例生成树)
- POJ 2728 Desert King(最优比例生成树)
- poj 2728 Desert King(最优比例生成树)
- poj 2728 Desert King(最优比例生成树)
- poj 2728 Desert King(最优比例生成树)
- poj 2728 Desert King(最优比例生成树)
- POJ 2728 Desert King 最优比例生成树
- POJ 2728 Desert King 最优比例生成树
- POJ 2728 Desert King(最优比例生成树)
- POJ 2728 Desert King (最优比例生成树)
- POJ 2728 Desert King (最优比例生成树)
- POJ 2728 Desert King (最优比例生成树)
- POJ 2728 Desert King (最优比例生成树)
- POJ 2728 Desert King (最优比例生成树)
- 最优比例生成树
- Android开发指南-用户界面-事件处理
- sicily1790
- MQ 暂记
- oracle字符集问题
- struts2注解
- POJ 2728 最优比例生成树
- 梦想
- 如何利用java的反射机制动态的取得对象的属性?
- Oracle管理及常用基础脚本
- 关于爱情
- Hibernate3注解
- JUnit写TestCase
- DataGrid导出Excel
- jquery seltip