考虑任意一棵生成树,它的代价是一个一次函数。

因此所有生成树的最小值随着时间变化呈现出的是一个上凸壳。

三分查找最大值即可。

时间复杂度$O(m\log m\log w)$。

#include<cstdio>
#include<algorithm>
int n,m,t1,t2,f[205],i;
struct E{int u,v,a,b;double w;void set(double t){w=a*t+b;}
}e[1205];
inline bool cmp(const E&a,const E&b){return a.w<b.w;}
int F(int x){return f[x]==x?x:f[x]=F(f[x]);}
double cal(double t){int i;for(i=0;i<m;i++)e[i].set(t);std::sort(e,e+m,cmp);for(i=0;i<n;i++)f[i]=i;double ret=0;for(i=0;i<m;i++)if(F(e[i].u)!=F(e[i].v))ret+=e[i].w,f[f[e[i].u]]=f[e[i].v];return ret;
}
int main(){scanf("%d%d%d%d",&n,&m,&t1,&t2);for(i=0;i<m;i++)scanf("%d%d%d%d",&e[i].u,&e[i].v,&e[i].a,&e[i].b);double l=t1,r=t2;for(i=100;i--;){double len=(r-l)/3,m1=l+len,m2=r-len;double f1=cal(m1),f2=cal(m2);if(f1>f2)r=m2;else l=m1;}return printf("%.3f",cal(l)),0;
}

  

BZOJ1431 : MLand相关推荐

  1. Android之Manifest文件

    在Android APP开发过程中,Manifest文件举足轻重.每一个apk都要有一个Manifest文件,它配置了apk在Android系统上的基本信息. 如下 frameworks/base/p ...

  2. 第六章 使用Direct3D绘制

    第五章主要关注渲染管道的概念和数学方面.本章重点介绍配置渲染管道所需的Direct3D API接口和方法,定义顶点和像素着色器,并将几何图形提交给绘制管道进行绘制.学完本章,您将能够绘制各种几何形状的 ...

  3. Directx11 Effects

    effects框架是一组工具代码,用来组织着色器程序和渲染状态,使它们共同协作实现一个具体的渲染效果.比如,你可能有不同的特效用于渲染水,云,金属物体和动态的角色.每一个effect都会包含至少一个顶 ...

  4. mysql 游戏_批处理_mysql建立游戏排行榜!

    先在服务器"server"上安装个msql服务器,并设置成以服务运行,改root密码为kkk.具体看书. 建立数据库,如:mygame,建立表:game 字段:id,数据类型为in ...

  5. SystemUI深度裁剪

    SystemUI深度裁剪 前言 SystemUI AOSP包含了很多组件, Status bars,Navigation bars,Notification,Lockscreen,Quick sett ...

  6. 2020 Gartner Magic Quadrant for Analytics and BI Platforms

    2020 Gartner Magic Quadrant for Analytics and BI Platforms 2020 Gartner 数据分析与BI平台魔力象限图 Published 11 ...

  7. 游戏排行榜实现mysql_批处理_mysql建立游戏排行榜!

    先在服务器"server"上安装个msql服务器,并设置成以服务运行,改root密码为kkk.具体看书. 建立数据库,如:mygame,建立表:game 字段:id,数据类型为in ...

最新文章

  1. Activity与Service通信
  2. 怎样使用计算机上的高级共享设置密码,win7系统电脑,如何设置共享,共享计算机的用户名和密码怎样设置...
  3. Java编程入门(2.1):基础Java应用程序
  4. 1.11 多异常捕获
  5. 行内框可以修改的尺寸
  6. 记录一下Junit测试MongoDB,获取MongoTemplate
  7. linux天气软件,类似智能手机!Linux中安装Conky天气插件
  8. VS Code 0.5添加ES6支持和Git工具改进
  9. java 异步调用webapi_Async Await异步调用WebApi
  10. Eureka 配置参数说明
  11. ubuntu 11.10 使用 emacs-23.4 开发 erlang 整理之 安装distel
  12. python编程入门视频-2020年5个经典python编程入门视频教程推荐学习
  13. 三十三.智能驾驶之多传感器融合技术: AVOD融合方法
  14. 图论算法 若干定义
  15. Swiper的种种踩坑与解决方案
  16. Groovy语法介绍
  17. 1334172-76-7,Biotin-PEG7-amine生物素-PEG试剂,在EDC或HATU活化剂存在下与NHS酯或羧基酸反应
  18. 机器人鸣人是哪一集_火影:你知道火影里出现了几次机器人吗?只有十年火迷才知道...
  19. 政府、事业单位短信通知解决方案
  20. lamp mysql开机自启_CentOS 程序开机自启动方法总结

热门文章

  1. 生儿子的绝妙方法汇总,对程序猿特管用!!!
  2. PHP register_shutdown_function函数详解
  3. “模板”学习笔记(3)-----为啥函数模板不能重载
  4. [No00002E]关于大数据,你不知道的6个迷思
  5. 爱的十个秘密--8.沟通的力量
  6. Servlet-ServletConfig对象
  7. Java开发团队管理细则
  8. vue router 懒加载实现
  9. php实现求对称二叉树(先写思路,谋而后动)
  10. SQL Server 2008无日志文件附加数据库