自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店。
一走进商店,玲琅满目的各式零件看得htn眼花缭乱。但是他很快便反应过来:我只要买一套好的零件就行。首先它们的性能差不能太大,否则汽车的兼容性不好,开着开着就损坏了;其次,当然是越便宜越好了!为了打造一辆顶级跑车,htn陷入了沉思……
现在商店中有 N 件零件,给出这 N 件零件的价格,其性能等于价格。htn要从中购买一套零件,即选取这个序列的一个子串(连续一段)。要求如下:
1、这一套零件个数要大于等于2(这才算一套)。
2、这套零件的性能差为首尾两个零件的性能差(htn觉得每一个都比较性能差实在是太累了)。
3、购买这套零件的价格和为它们各自价格的总和。
4、最终的总花费为 性能差²+价格和²。
5、由于商店最近有优惠活动,所以每一套零件的第一个都是免费的。

我们发现,如果令s[i]=Σa[j]{0<j<=i} 那么,answer=min((a[i]-a[j])^2+(s[i]-s[j])^2)

看到两个平方想到了什么?

平面最近点对!

采用分治法,可以自行百度,注意一下细节:

我们在分治的时候,顺便进行归并排序,这样就可以避免调用sort,将复杂度降到O(n lg n)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100010
#define LL long long
using namespace std;
LL x[N],y[N],a[N],b[N]; int n;
inline LL sqr(LL x){ return x*x; }
inline LL dis(int i,int j){ return sqr(x[i]-x[j])+sqr(y[i]-y[j]); }
LL merge(int l,int r){if(l==r) return 1ll<<62;int m=l+r>>1,c=l; LL d=min(merge(l,m),merge(m+1,r));for(int i=l,j=m+1;i<=m || j<=r;++i){for(;j<=r && (i>m||y[i]>y[j]);++j) a[c]=x[j],b[c++]=y[j];if(i<=m && abs(x[i]-x[m])<d)for(int k=max(m+1,j-3);k<=j+3;++k) d=min(d,dis(i,k));if(i<=m) a[c]=x[i],b[c++]=y[i];}for(int i=l;i<=r;++i) x[i]=a[i],y[i]=b[i];return d;
}
int main(){scanf("%d",&n);for(int i=1;i<=n;++i) scanf("%lld",y+i),x[i]=y[i]+x[i-1];printf("%lld\n",merge(1,n));
}

转载于:https://www.cnblogs.com/Extended-Ash/p/8312618.html

Jzoj4770 闭门造车相关推荐

  1. 【JZOJ4770】闭门造车

    Description 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但 ...

  2. 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(一)后台控制逻辑代码部分...

    我也是本着善意把自己的代码结构分享给大家,欢迎大家用批评指点.首先我为什么把这个标题写为恶人,因为我很喜欢招惹别人,因为喜欢跟别人交流,喜欢指出别人的缺点,偷偷学习别人的优点,所以大家都会反感我,因为 ...

  3. OpenAI不Open:闭门造车、融资不断,深度报道再掀争议,马斯克:应该更加开放...

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI OpenAI再度引发热议.这次起因却是一篇深度特稿. 此前,创立于2015年12月的OpenAI,在短短4年间,已经成为全世界最具盛名的AI ...

  4. 【NOIP2016提高A组模拟9.9】闭门造车

    题目 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但是他很快便反应过来 ...

  5. BN究竟起了什么作用?一个闭门造车的分析

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm BN,也就是 Batch Normalization [1],是当前深度学习模型(尤其是视觉相关模型)的一个相当重 ...

  6. 如何做出好的文档 (要学习前人的经验,不要闭门造车)

    之前一直认为自己Excel文档做的不错, 不久之前,做了一个KT的计划 发现,还是有很多欠缺的地方需要提高 不好的做法 把想要讲的东西一股脑都列出来 (java,JSF,HTML,CSS,java,J ...

  7. 闭门造车的苹果,究竟在造什么车?

    在造车这件事情上,似乎没有哪一家比苹果公司更加扑朔迷离的了. 从2014年起,苹果就一直在寻求制造自己的汽车.不过直到今天,人们也没有等到一辆苹果汽车的影子. 一次次被传出造车项目"夭折&q ...

  8. 苹果闭门造车6年了!是否已经“翻车”?

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 在造车这件事情上,似乎没有哪一家比苹果公司更加扑朔迷离的了. 从2014年起,苹果就一直在寻求制造自己的汽车.不过直到今天,人们也没有等到一辆苹果汽 ...

  9. 守着“伪需求”闭门造车,还谈什么大数据价值变现

    除了BAT和部分500强企业的内部应用,你几乎找不到真正带来规模化经济效益的大数据产品?面对"伪需求"与"假产品",应该如何杜绝臆想,建立有效的应用场景,实现真 ...

最新文章

  1. P1486 [NOI2004] 郁闷的出纳员 FHQ-Treap
  2. 大数据教程之大数据处理流程
  3. Node.js基础知识普及
  4. 程序员的进阶课-架构师之路(15)-那些年你遇到的其他树
  5. Python数据结构:插入排序
  6. adduser useradd userdel /etc/password【原创】
  7. php 如何将100w级的数据入库。
  8. 项目经理,你真的是资源不足吗?
  9. 集成运算放大器的简要介绍
  10. 植物免疫研究与抗病虫绿色防控:进展、机遇与挑战
  11. 路由token验证和路由守卫~~狂徒李四
  12. 每日三省吾身- 持续改进-持续集成
  13. 钛媒体乌镇咖荟 | 这场对话把“元宇宙”说透了:AI、区块链、5G技术将如何碰撞...
  14. IPGuard文档加密基本设置步骤
  15. 在s5pv210开发板上移植官方2101310版本的uboot
  16. linux命令行恢复回收站,Trash-Cli:Linux 上的命令行回收站工具
  17. 预测2019浙大计算机考研分数,2019年浙江大学考研复试分数线已出现
  18. 计算机病毒实验教程pdf,计算机病毒实验手册4-5-9-10-8-v40.pdf
  19. 清华大学保研计算机推荐信模板,清华保研推荐信模板.doc
  20. sh: gpustat: command not found

热门文章

  1. linux语法 2022年4月14星期四
  2. DOM操作——怎样添加、移除、移动、复制、创建和查找节点?
  3. jwt的token自动续约_SpringSecurity Jwt Token 自动刷新的实现
  4. idea自动补全类名和方法名
  5. PTA-python练习题-1
  6. 一个汉字占多少个字节
  7. exec族函数————execl, execlp, execle, execv, execvp, execvpe
  8. JS如何判断数据类型
  9. 远程服务器与windows之间不能复制粘贴
  10. 想要订外卖不超时,就不要点专送