【题解】quake

【题解】\(quake\)

题目大意

我们共有报酬\(f\)元,一条边有它的价值\(w_i\),有它的建造时间\(t_i\)。要求建一些边,生成一颗树。求最大的利润率。

数据范围

\(n\le 400\) \(m\le10000\)

\(Solution\)

实际上\(n,m\)出到\(\le 100000\)应该也是没问题的。

分数形式?考虑数学表示一下

### \(\frac{f-\Sigma c_i}{\Sigma t_i}\le ans\)

### \(f-\Sigma c_i\le ans\Sigma t_i\)

### \(\Sigma(ans\times t_i + c_i) \le f\)

二分就完事了,然后直接克鲁斯卡尔。

#include<bits/stdc++.h>#define RP(t,a,b) for(register int (t)=(a),edd_=(b);t<=edd_;++t)
#define DRP(t,a,b) for(register int (t)=(a),edd_=(b);t>=edd_;--t)
#define ERP(t,a) for(int t=head[a];t;t=e[t].nx)
#define pushup(x) seg[(x)]=seg[(x)<<1]+seg[(x)<<1|1]
#define midd register int mid=(l+r)>>1
#define TMP template<class ccf>
#define rgt L,R,mid,r,pos<<1|1
#define lef L,R,l,mid,pos<<1
#define all 1,n,1using namespace std;typedef long long ll;typedef long double db;
TMP inline ccf Max(ccf a,ccf b){return a<b?b:a;}
TMP inline ccf Min(ccf a,ccf b){return a<b?a:b;}
TMP inline ccf Abs(ccf a){return a<0?-a:a;}
TMP inline ccf qr(ccf k){char c=getchar();ccf x=0;int q=1;while(c<48||c>57)q=c==45?-1:q,c=getchar();while(c>=48&&c<=57)x=x*10+c-48,c=getchar();return q==-1?-x:x;
}
//-------------template&IO---------------------
const int maxn=405;
int r[maxn];
int head[maxn];
int cnt;
int n,m;
long double F;
long double mid;
const long double EPS=1e-10;struct S{int fr,to;long double w,t;inline void mk(int FR,int TO,int W,int T){fr=FR;to=TO;w=W;t=T;}inline bool operator <(S a){return t*mid+w<a.t*mid+a.w;}
}data[10001];inline void add(int fr,int to,int w,int t){data[++cnt].mk(fr,to,w,t);
}inline int q(int x){register int t=x,temp,i=x;while(r[t]!=t) t=r[t];while(r[i]!=i){temp=r[i];r[i]=t;i=temp;}return t;
}inline void j(int x,int y){r[q(x)]=q(y);}
inline bool in(int x,int y){return q(x)==q(y);}inline bool chek(){RP(t,1,n) r[t]=t;sort(data+1,data+m+1);long double ret=0;RP(p,1,m)if(!in(data[p].fr,data[p].to))ret+=data[p].t*mid+data[p].w,j(data[p].fr,data[p].to);return ret<=F+EPS||ret+EPS<=F;
}int t1,t2,t3,t4;
int main(){
#ifndef ONLINE_JUDGEfreopen("quake.in","r",stdin);freopen("quake.out","w",stdout);
#endifn=qr(1);m=qr(1);F=qr(1);RP(t,1,m){t1=qr(1);t2=qr(1);t3=qr(1);t4=qr(1);add(t1,t2,t3,t4);}long double l=0,r=2000000001;mid=0;if(!chek()){puts("0.0000\n");return 0;}do{mid=(l+r)/(db)2;if(chek())l=mid;elser=mid;}while(l+EPS<r);printf("%.4Lf",l);return 0;}/*分数形式?考虑数学表示一下### $\frac{f-\Sigma c_i}{\Sigma t_i}\le ans$### $f-\Sigma c_i\le ans\Sigma t_i$###  $\Sigma(ans\times t_i + c_i) \le f$二分就完事了*/

转载于:https://www.cnblogs.com/winlere/p/10367969.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android应用开发——service连接泄露异常:android.app.ServiceConnectionLeaked: that was originally bound here

在做service开发过程中&#xff0c;大部分可能会遇到以下异常&#xff0c;该异常仅通过log输出&#xff0c;并不会导致app crash。 E/ActivityThread: Activity com.example.image.all_samples.Main2Activity has leaked ServiceConnection com.example.image.all_samples.Mai…

Linux more命令、Linux rhmask命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Linux more 命令类似 cat &#xff0c;不过会以一页一页的形式显示&#xff0c;更方便使用者逐页阅读&#xff0c;而最基本的指令就是按…

从零开始学习PYTHON3讲义(二)把Python当做计算器

《从零开始PYTHON3》第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境&#xff0c;macOS/Linux都可以在命令行执行idle3。Windows则从开始菜单中去寻找IDLE程序的图标。 上一讲我们还见到了Python的两种工作模式&#xff0c;交互模式和程序模式。 通常在一个大型的…

Tranquility

本页目录与Kafka集群交互Druid使用Tranquility Kafka本文以Kafka为例&#xff0c;介绍在E-MapReduce中如何使用Tranquility从Kafka集群采集数据&#xff0c;并实时推送至Druid集群。 Tranquility是一个以push方式向Druid实时发送数据的应用。它替用户解决了分区、多副本、服务发…

Iot相关杂烩

人工智能就像人的大脑&#xff0c;而 IoT 就像人的神经网络 1&#xff09;在天空中巨大的鸟群里&#xff0c;每一只鸟儿都实时判断自己和四周同伴的距离。这时&#xff0c;它们各自都是一个物联网节点。2&#xff09;这些“节点”并不是简单地收集数据&#xff0c;而是在实时计…

水滴石穿C语言之指针、数组和函数

基本解释   1、指针的本质是一个与地址相关的复合类型&#xff0c;它的值是数据存放的位置&#xff08;地址&#xff09;&#xff1b;数组的本质则是一系列的变量。   2、数组名对应着&#xff08;而不是指向&#xff09;一块内存&#xff0c;其地址与容量在生命期内保持…

告诉你银行在年底为存储做的小动作

25年前&#xff0c;银行的存款利率是10.98%&#xff0c;可谓巅峰时刻。15年前&#xff0c;银行的存款利率开始下降&#xff0c;降到了8%的利率。 到了5年前&#xff0c;银行的存款利率毫无回转之势&#xff0c;直线下降到了5%的利率。 而如今&#xff0c;我们无可奈何地接受了2…

爬虫学习(五)——百度贴吧的爬取

import osimport timeimport urllib.requestimport urllib.parse# 输入目标页码和吧名def header(): url "https://tieba.baidu.com/f?" baming input("请输入要爬取的吧名") start_page int(input("请输入起始页")) end_page …

什么是嵌入式设备?/ 嵌入式设备的定义

什么是嵌入式设备&#xff1f;/ 嵌入式设备的定义 区别于通用计算机的其他设备都可以称之为嵌入式设备 &#xff08;个人电脑&#xff0c;服务器&#xff09; 一段时期内&#xff0c;必备的硬件配置。 嵌入式开发包括哪些部分&#xff1a; 底层驱动开发&#xff1a; 关键字…

Linux mv命令、Linux cp命令、Linux scp命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。 语法 mv [options] source dest mv [options] source... director…

创业者谈:畏惧失败,但也要拥抱失败

摘要&#xff1a;本文作者为Paydirt创始人Tristan Gamilis&#xff0c;他在文中分享了如何面对创业过程中的失败。作为一个创业者&#xff0c;开始的时候并非全才&#xff0c;很多知识都是经历了创业中的失败&#xff0c;摸爬滚打之后才学会的。所以&#xff0c;我们在创业过程…

基于STM32F4移植W5500官方驱动库ioLibrary_Driver(转)

源&#xff1a; 基于STM32F4移植W5500官方驱动库ioLibrary_Driver 参考&#xff1a; 基于STM32W5500 的Ethernet和Internet移植 Upgrade W5500 Throughput on Nucleo STM32F401RE Using SPI DMA

redis 资料

redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字…

Android应用开发——onStop的调用时机

onStop的调用时机&#xff0c;网上搜索到的说法大概是&#xff1a;“ onStop的调用是“The activity is no longer visible”&#xff0c;也就是完全不可见的时候调用的&#xff0c;这个完全不可见真的就是指视觉上的完全看不到而已&#xff0c;无论是按home键返回桌面&#xf…

UnaryOperator函数式接口

2019独角兽企业重金招聘Python工程师标准>>> 这是一个函数式接口&#xff0c;因此可以用作lambda表达式或方法引用的赋值目标。 可以看到UnaryOperator<T>继承了Function<T,T>接口&#xff0c;这里可是两个T,T,还增加了static修饰的identity()方法。 然…

从程序员到项目经理

推荐研发工程师必看的内容 从程序员到项目经理 从程序员到项目经理”&#xff0c;这个标题让我想起了很久以前一本书的名字《从Javascript到Java》。然而&#xff0c;从Javascript到Java充其量只是工具的更新&#xff0c;而从程序员到项目经理&#xff0c;却是一个脱胎换骨的过…

linux--命令rcp和scp

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 rcp代表“remote file copy”&#xff08;远程文件拷贝&#xff09;。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式…

Android Camera 2.0 Api

二次图像处理 Camera2的API扩展了对YUV的支持&#xff0c;及图像再处理支持。要知道是否据有这个能力&#xff0c;可以调getCameraCharacteristics()方法&#xff0c;检查REPROCESS_MAX_CAPTURE_STALL这个键值 。如果设备支持再处理&#xff0c;则可以调用createReprocessableC…

scala-数组操作

package com.bigdataimport scala.collection.mutable.ArrayBufferobject ArrayO {def main(args: Array[String]): Unit {val arrayBuffer ArrayBuffer[Int]()//默认情况下都是在ArrayBuffer末尾增加元素arrayBuffer 1arrayBuffer (4,5,6,7,8,9,10)arrayBuffer Array(1,2…

spring cloud微服务分布式云架构 - Spring Cloud集成项目简介

Spring Cloud集成项目有很多&#xff0c;下面我们列举一下和Spring Cloud相关的优秀项目&#xff0c;我们的企业架构中用到了很多的优秀项目&#xff0c;说白了&#xff0c;也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必须了解一下相关项目&#xff0c;希望可以…