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,一经查实,立即删除!

相关文章

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() …

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

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

三星+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…

添加系统路径

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

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

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

Domain Socket本地进程间通信

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

入门指南_激光切管快速入门指南

本文是有关管材和激光管切割的思考的快速入门指南。要求首先&#xff0c;需要确定对管材尺寸的要求。考虑以下问题&#xff1a;将要加工的管材最大和最小直径是多少&#xff1f;切割这些管材需要多大功率&#xff1f;它们是薄壁还是厚壁&#xff1f;原材料和成品零件的长度是多…

页面调试

1.network all 所有请求 XHR ajax请求 WS websocket请求 转载于:https://www.cnblogs.com/gzl180110/p/10930802.html

hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客

最近有几位同学在公众号后台留言问我的博客站是怎么建站的&#xff0c;思来想去&#xff0c;还是写一篇从 0 开始吧。前置准备我们先聊一下前置准备&#xff0c;可能很多同学一听说要自己搭一个博客系统&#xff0c;直接就望而却步。不得有台服务器么&#xff0c;不得搞个数据库…

android service交互,Android Activity与Service的交互方式

参考: http://blog.csdn.net/gebitan505/article/details/18151203实现更新下载进度的功能1. 通过广播交互Server端将目前的下载进度&#xff0c;通过广播的方式发送出来&#xff0c;Client端注册此广播的监听器&#xff0c;当获取到该广播后&#xff0c;将广播中当前的下载进度…

[转帖]AjaxControlToolkit.TabContainer 自定义样式续

Tabs控件其实是一个容器控件TabContainer和面板控件TabPanel。TabContainer控件用于包含TabPanel。TabPanel控件用于显示。下面来看一个示例&#xff1a;1)在VS2005中新建一个ASP.NET AJAX-Enabled Web Project项目工程&#xff0c;命名为Tabs。2)在Default.aspx页面上添加一个…

c++ using 前置声明_每日优鲜前置仓模式的配货优化方案案例介绍

大渔导读&#xff1a;2019 年零售业供应链最佳实践大奖——银奖 基于每日优鲜前置仓模式的配货优化方案案例&#xff1b;1. 背景介绍&#xff1a; 每日优鲜成立于 2014 年 11 月&#xff0c;是专注于优质生鲜的移动电商&#xff0c;已在北上广深等全国 10 个核心城市建立“城市…

lg gw880 qq2011 android beta4版,LG GW880评测:CMMB天线、细节设计

机身侧面的银色边框与黑色的正面形成了鲜明的对比。不同于大部分的手机&#xff0c;LG GW880把电源/锁机键放到了机身左侧&#xff0c;而且还多了一个返回键&#xff0c;所以机身侧面设置了比较多的按键&#xff0c;设计比较复杂。机身右侧是拍照键、音量键以及数据线接口&…

excel按季度分类汇总_Excel数据分析实战(1)--电商销售记录分析

Excel是市面上最流行的办公软件之一&#xff0c;也是数据分析师入门最好的学习工具。因为其功能强大、操作简单&#xff0c;可以快速对数据进行清洗&#xff0c;建模&#xff0c;可视化&#xff0c;操作者不需要其他计算机基础也能快速上手。所以选择Excel进行数据分析入门的项…

[Silverlight]奇技银巧系列-2

Silverlight奇技银巧系列&#xff1a; 所有该系列中的文章只为介绍一些Silverlight中或隐藏在Silverlight .NET framework鲜为人知的知识和技巧。这些文章并非教程&#xff0c;也是不是什么技术指导&#xff0c;您只需对文章介绍的内容保有印象。这些知识和技巧也许会在不经意间…

好程序员Java分享Java案例_英汉字典

在写代码的时候&#xff0c;当鼠标悬浮在某一个单词上面的时候&#xff0c;有道词典点有时会弹出一个消息气泡&#xff0c;在里面中给出关于这个单词相关的解释&#xff0c;下面给大家展示一个使用Java基础语言编写的英汉字典案例&#xff1a;   实现功能&#xff1a; …

同事更新几个表_最近计划学习的几个网站资源

在没有明确需要的时候逛知乎&#xff0c;B站什么的随便看教程&#xff0c;发现资源很多&#xff0c;五花八门&#xff0c;但是总也没系统地学习一下。一会儿看一小段&#xff0c;转眼就忘光了&#xff0c;只留下一个刚才我没有在玩耍的错觉。以上是无关紧要的忏悔。接下来主要记…

带有托管代码的InfoPath2007表单模版发布到SharePoint表单库(浏览器方式查看)

在本篇文章中,将与大家分享如何将一个带有托管代码(manage code)的InfoPath2007表单模版发布到SharePoint Server2007的表单库中&#xff0c;并使得最终用户可以通过浏览器方式访问。 1. 创建InfoPath表单模版 在这里&#xff0c;我们使用VSTO2005与InfoPath2007。生成…