jzoj4640. 【GDOI2017模拟7.15】妖怪

Description

在这里插入图片描述

Input

在这里插入图片描述

Output

在这里插入图片描述

Sample Input

3
1 1
1 2
2 2

Sample Output

8.0000
在这里插入图片描述

Data Constraint

在这里插入图片描述

题解

我还挺喜欢数学的呢
这题一眼看上去不会,化化式子没想到未知数竟然是一个反比例+一次函数的样子。
长这样:ax+bx\frac a x+bxxa+bx
当时心态就没了。
原来这玩意是一个在高中叫做双勾函数(或对勾函数或耐克函数
很好,于是我们就看看这个玩意长什么样——
在这里插入图片描述
既然是长这个样子,那么应该就有一个顶点(最小点)。
利用均值不等式可以得到——
(aba,2ab)(\frac{\sqrt{ab}}a,2\sqrt{ab})(aab,2ab)
由于图中有很多很多的双勾函数,那么其中必然有一些线没有用的。
我们考虑删去这些没有用的

怎么删?
首先我们对于任意两点——满足
ai&lt;aj且yi&lt;yj(答案)a_i&lt;a_j且y_i&lt;y_j(答案)ai<ajyi<yj
那么
ai+bi+ai∗x+bix&lt;aj+bj+aj∗x+bjxa_i+b_i+a_i*x+\frac{b_i}{x}&lt;a_j+b_j+a_j*x+\frac{b_j}{x}ai+bi+aix+xbi<aj+bj+ajx+xbj
化一波式子得到:
x&gt;bi−bjaj−aix&gt;\frac{b_i-b_j}{a_j-a_i}x>ajaibibj
c[i,j]=bi−bjaj−aic[i,j]=\frac{b_i-b_j}{a_j-a_i}c[i,j]=ajaibibj
则我们对于一个c[i,j]&gt;c[j,k]c[i,j]&gt;c[j,k]c[i,j]>c[j,k]那么j这个点就是没有用的。
所以说,我们就得到一个序列ddd,序列满足c[di−1,di]&lt;c[di,di+1]c[d_{i-1},d_i]&lt;c[d_i,d_{i+1}]c[di1,di]<c[di,di+1]
这个东东是递增的。
那么我们发现:当xxxc[di−1,di]c[d_{i-1},d_i]c[di1,di]c[di,di+1]c[d_i,d_{i+1}]c[di,di+1]这段区间内时,did_idi的函数值是最大的。
因此,我们在did_idi的函数上判断这段区间的最小值即可。
怎么判断?可能有三种情况:
1、在顶点左边。
2、在顶点右边。
3、横跨顶点。

O(n)O(n)O(n)求即可。

代码

vari,j,k,l,n,m,now:longint;a,b,d:array[0..1000003] of longint;op,oq,x,y,ans,aa,bb:extended;
function min(x,y:extended):extended;
beginif x<y then exit(x);exit(y);
end;
procedure qsort(l,r:longint);
vari,j,m,m1:longint;
begini:=l;j:=r;m:=a[(l+r) div 2];m1:=b[(l+r) div 2];repeatwhile (a[i]<m) or ((a[i]=m) and (b[i]<m1)) do inc(i);while (a[j]>m) or ((a[j]=m) and (b[j]>m1)) do dec(j);if i<=j thenbegina[0]:=a[i];a[i]:=a[j];a[j]:=a[0];b[0]:=b[i];b[i]:=b[j];b[j]:=b[0];inc(i);dec(j);end;until i>j;if l<j then qsort(l,j);if r>i then qsort(i,r);
end;
function pd(i:longint):boolean;
varx,y,op,oq:extended;
beginx:=b[d[now]]-b[d[now-1]];y:=a[d[now-1]]-a[d[now]];op:=x/y;x:=b[i]-b[d[now]];y:=a[d[now]]-a[i];oq:=x/y;if op>oq then exit(true);exit(false);
end;
begin//assign(input,'monster.in');reset(input);readln(n);for i:=1 to n dobeginread(a[i],b[i]);end;qsort(1,n);now:=1;d[1]:=1;for i:=2 to n dobeginif a[i]>a[1] thenbegininc(now);d[now]:=i;j:=i;break;end;end;for i:=j+1 to n dobeginif a[i]>a[d[now]] thenbeginwhile (now>=2) and (pd(i)) do dec(now);inc(now);d[now]:=i;end;end;ans:=maxlongint;for i:=2 to now-1 dobeginx:=b[d[i]]-b[d[i-1]];y:=a[d[i-1]]-a[d[i]];op:=x/y;x:=b[d[i+1]]-b[d[i]];y:=a[d[i]]-a[d[i+1]];oq:=x/y;aa:=a[d[i]];bb:=b[d[i]];if op>sqrt(aa*bb)/aa then ans:=min(ans,aa*op+bb/op+aa+bb);if oq<sqrt(aa*bb)/aa then ans:=min(ans,aa*oq+bb/oq+aa+bb);if (op<=sqrt(aa*bb)/aa) and (oq>=sqrt(aa*bb)/aa) then ans:=min(ans,2*sqrt(aa*bb)+aa+bb);end;x:=b[d[now]]-b[d[now-1]];y:=a[d[now-1]]-a[d[now]];aa:=a[d[now]];bb:=b[d[now]];op:=x/y;if op>sqrt(aa*bb)/aa then ans:=min(ans,aa*op+bb/op+aa+bb)else ans:=min(ans,2*sqrt(aa*bb)+aa+bb);writeln(ans:0:4);
end.

转载于:https://www.cnblogs.com/RainbowCrown/p/11148359.html

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

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

相关文章

[html] H5如何与APP交互?有哪些方式?

[html] H5如何与APP交互&#xff1f;有哪些方式&#xff1f; jsbridge与app通信个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

电脑w ndows无法自动修复,windows 10自动修复无法修复你的电脑

我是由8.1升级到的10&#xff0c;为了以防万一&#xff0c;又做了个10的镜像。我发现不管是winpe还是windows10安装镜像里面修复计算机中自动修复一直处于无法修复计算机的状态&#xff0c;在日志文件中---------------------------尝试修复次数:1会话详细信息----------------…

activiti 设置可选处理人_新品速递|高端系列!慧明DF系列线性相位处理专业音箱处理器...

2020年对很多人来说&#xff0c;是特别艰难的一年&#xff0c;一场新冠疫情&#xff0c;可谓把整个演艺行业压得喘不过气&#xff0c;但是尽管如此&#xff0c;我们仍坚决相信行业将会很快复苏&#xff0c;一切终将迎来新的生机与活力。2020年初&#xff0c;哪怕是最困难的时期…

Scrapy 教程(十)-管道与数据库

Scrapy 框架将爬取的数据通过管道进行处理&#xff0c;即 pipelines.py 文件。 管道处理流程 一、定义 item item 表示的是数据结构&#xff0c;定义了数据包括哪些字段 class TianqiItem(scrapy.Item):# define the fields for your item here like:city scrapy.Field() …

[html] 写页面布局时需要考虑哪些方面的因素?

[html] 写页面布局时需要考虑哪些方面的因素&#xff1f; 1 熟练使用块级元素 和 行内元素 2 html 结构语义化 3 是否考虑兼容性 和 移动端个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与…

地壳中元素含量排名记忆口诀_广州地化所等发现洋内弧大陆地壳成熟新机制

大陆的形成和演化是地球科学研究中广泛关注的前沿科学问题之一。大陆地壳总体上具有安山质到英安质地球化学成分特征&#xff0c;与洋内弧中大洋俯冲作用形成的岩浆岩具有相似的微量元素地球化学特征(如富集大离子亲石元素和亏损高场强元素)&#xff0c;众多学者认为大陆地壳的…

c#语言 修改xml文件路径,C#对XML操作:编辑XML文件内容-.NET教程,C#语言

public void page_load(object src,eventargs e){/** 版 权 &#xff1a; copyright by sem it department* 版 本 &#xff1a; version 0.0.1* 文 件 &#xff1a; editxml.aspx* 用 途 &#xff1a; 编辑xml文件(修改、删除行)* 作 者 &#xff1a; 欧阳云天 2005-4-9* 邮 箱…

创业

最近非常的忙。 9月10号需要给3个客户交付一套软件。而且公司也没什么人可以帮忙。大家都有自己的事情。只剩下不到一个月的时间了。还要兼顾测试。真的很担心。心情稍微好了些。有人帮忙了。 呵呵2009/8/25转载于:https://www.cnblogs.com/smallvv/archive/2009/08/17/1547927…

三星+android7.0+字体,三星S7升级安卓7.0新技能:新增分辨率调整功能

三星Galaxy Note 7推出了安卓7.0的升级&#xff0c;此次升级后&#xff0c;三星S7将会增加分辨率调整功能。这个功能可以根据用户的需求和喜好来进行调整&#xff0c;在HD(7201280像素)、FHD(12801920像素)以及QHD(14402560像素)三种不同的分辨率之间自由切换。在过去的一年里&…

html title属性无效_【学习教程】使用JavaScript删除CSS属性

方法1&#xff1a;使用CSS removeProperty&#xff1a;该CSSStyleDeclaration.removeProperty()方法被用来从一个元件的样式删除一个属性。通过遍历styleSheets数组并选择cssRule&#xff0c;可以选择元素的样式。然后可以使用要删除的属性指定removeProperty方法。句法&#x…

090817问题

问题编号&#xff1a;090817.UserControl 分类&#xff1a;用户控件 问题描述&#xff1a; 用户控件A功能描述&#xff1a;提交一组数据到服务器保存&#xff0c;成功保存地情况下呈现数据。控件上面至少存在一个button按钮&#xff0c;以及button单击事件。 页面需要罗列出已添…

[html] 你认为写出什么样的html代码才是好代码呢?

[html] 你认为写出什么样的html代码才是好代码呢&#xff1f; 但是发现是我自己写的时候。 我就知道&#xff0c;我的代码能力又上一层楼。 但是一个好的代码&#xff0c;不仅仅是逻辑顺序清楚&#xff0c;更重要还是复用性强&#xff0c;注释写的够让人明白。 其中最后一条尤…

添加系统路径

export PATH$PATH:/usr/local/mongodb/bin/ source /etc/profile 转载于:https://www.cnblogs.com/xiaobiaomei/p/10922225.html

WCF演练源代码

/Files/litaocnblogs/LTWCF.rar转载于:https://www.cnblogs.com/litaocnblogs/archive/2009/08/20/1550669.html

android开机自动打开微信小程序,Android APP拉起小程序界面 (微信未启动 打不开)...

官方地址开发前需下载Android开发工具包(SDK)&#xff0c;可前往下载调用接口&#xff1a;WXLaunchMiniProgram 移动应用跳转到小程序示例&#xff1a;String appId "wxd930ea5d5a258f4f"; // 填应用AppIdIWXAPI api WXAPIFactory.createWXAPI(context, appId);WXL…

7怎样设置禁网_怎样才能提升网站内页的收录?

1、提高网站的内容质量&#xff0c;文章尽可能的原创。搜索引擎蜘蛛更喜爱原创的高质量内容&#xff0c;能够缩短网站的审核期。2、良好的网站结构&#xff0c;继续搜索引擎的匍匐与抓取。现在一般都是divcss的结构&#xff0c;不要运用table结构&#xff0c;尽可能少的运用fla…

[html] 如何使用H5实现电子签名?请说说你的思路

[html] 如何使用H5实现电子签名&#xff1f;请说说你的思路 最终目标&#xff1b;实现用户手写签名&#xff0c;然后将签名放到指定位置步骤&#xff1a; 1&#xff0c;使用canvas实现用户手写签名 2&#xff0c;canvas将用户签名导出图片 3&#xff0c;放到指定的dom处个人简…

Domain Socket本地进程间通信

socket API原本是为网络通讯设计的&#xff0c;但后来在socket的框架上发展出一种IPC机制&#xff0c;就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯&#xff08;通过loopback地址127.0.0.1&#xff09;&#xff0c;但是UNIX Domain Socket用于IPC更有…

php判断中英文请求,并实现跳转

PHP代码: <? $lan substr(?$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan "zh-cn") print("<meta http-equivrefresh content 0;URL gb/index.htm>"); else print("<meta http-equivrefresh content 0;URL eng/index.htm>"); ?…

curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应

HTTP入门(一)&#xff1a;在Bash中curl查看请求与响应本文简单总结HTTP的请求与响应。本文主要目的是对学习内容进行总结以及方便日后查阅。详细教程和原理可以参考HTTP文档(MDN)。本文版权归马涛涛所有。本文所引用的图片和文字版权归原作者所有&#xff0c;侵权删。如有错误请…