BZOJ1431 : MLand
考虑任意一棵生成树,它的代价是一个一次函数。
因此所有生成树的最小值随着时间变化呈现出的是一个上凸壳。
三分查找最大值即可。
时间复杂度$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的更多相关文章
- Direct3D11学习:(八)Effects介绍
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Effects框架是一组用于管理着色器程序和渲染状态的工具代码.例如,你可能会使用不同的effect绘制水.云. ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree (树形dp)
题目链接 题意:给你一个有根树,假设有k个叶子节点,你可以给每个叶子节点编个号,要求编号不重复且在1-k以内.然后根据节点的max,minmax,minmax,min信息更新节点的值,要求根节点的值最 ...
- CentOS下RPM方式安装MySQL5.6(转载)
之前的项目全都在windows系统环境下部署的,这次尝试在Linux系统环境下部署,于是这次我们组织在7台主机上安装了JDK.Maven.Jboss其中一台安装了Mysql,并将局域网配置好,终于大功 ...
- element-UI使用中:el-input type为textarea时@change无法触发?
自己瞎尝试解决了的.官方文档上居然没写@input事件,醉了.
- jmeter分布式测试教程和远程的代理机无法连接网络的问题解决方法
一.Jmeter分布式执行原理: 1.Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent). 2.执行时,Controller会把脚本发送到每台A ...
- CentOS搭建GIT服务器
安装git # 请确保您切换到了root账户 $ su root $ yum install -y git # 验证是否安装成功 $ git --version # 输出如下内容表示成功: git v ...
- core ML学习
Core ML工具是一个Python包(coremltools),托管在Python包索引(PyPI)上. 从表格中可看出,支持caffe工具. 使用与模型的第三方工具相对应的Core ML转换器转换 ...
- python3简单实现支持括号的加减乘除运算
1.首先表达式的空格. 2.循环计算最内层带括号的表达式(提取运算符出现的顺序,然后计算) 3.计算最外层的表达式输出. 刚接触python,代码不够严谨,仅实现功能.不知道如何在函数中使用运算符变量 ...
- Python2.7与3.6的一些区别
2.7实现了一部分3的功能, 更早版本可能会稍稍涉及一点 首先是关键字的差别 python3.6 import keyword print(keyword.kwlist) ['False', 'Non ...
- docker-compose部署ELK
本章基于 https://www.cnblogs.com/lirunzhou/p/10550675.html 在此基础上将ELK系统docker-compose.yml化. 其docker-compo ...
- Cardinality
Cardinality: 优化器在计算成本的时候,需要从统计信息中取得数据,然后去估计每一步操作所涉及的行数,叫做Cardinality. 比如,一张表T有1000行数据,列COL1上没有直方图,没有 ...