Jzoj4770 闭门造车
自从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 闭门造车相关推荐
- 【JZOJ4770】闭门造车
Description 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但 ...
- 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(一)后台控制逻辑代码部分...
我也是本着善意把自己的代码结构分享给大家,欢迎大家用批评指点.首先我为什么把这个标题写为恶人,因为我很喜欢招惹别人,因为喜欢跟别人交流,喜欢指出别人的缺点,偷偷学习别人的优点,所以大家都会反感我,因为 ...
- OpenAI不Open:闭门造车、融资不断,深度报道再掀争议,马斯克:应该更加开放...
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI OpenAI再度引发热议.这次起因却是一篇深度特稿. 此前,创立于2015年12月的OpenAI,在短短4年间,已经成为全世界最具盛名的AI ...
- 【NOIP2016提高A组模拟9.9】闭门造车
题目 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但是他很快便反应过来 ...
- BN究竟起了什么作用?一个闭门造车的分析
作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm BN,也就是 Batch Normalization [1],是当前深度学习模型(尤其是视觉相关模型)的一个相当重 ...
- 如何做出好的文档 (要学习前人的经验,不要闭门造车)
之前一直认为自己Excel文档做的不错, 不久之前,做了一个KT的计划 发现,还是有很多欠缺的地方需要提高 不好的做法 把想要讲的东西一股脑都列出来 (java,JSF,HTML,CSS,java,J ...
- 闭门造车的苹果,究竟在造什么车?
在造车这件事情上,似乎没有哪一家比苹果公司更加扑朔迷离的了. 从2014年起,苹果就一直在寻求制造自己的汽车.不过直到今天,人们也没有等到一辆苹果汽车的影子. 一次次被传出造车项目"夭折&q ...
- 苹果闭门造车6年了!是否已经“翻车”?
热点追踪 / 深度探讨 / 实地探访 / 商务合作 在造车这件事情上,似乎没有哪一家比苹果公司更加扑朔迷离的了. 从2014年起,苹果就一直在寻求制造自己的汽车.不过直到今天,人们也没有等到一辆苹果汽 ...
- 守着“伪需求”闭门造车,还谈什么大数据价值变现
除了BAT和部分500强企业的内部应用,你几乎找不到真正带来规模化经济效益的大数据产品?面对"伪需求"与"假产品",应该如何杜绝臆想,建立有效的应用场景,实现真 ...
最新文章
- P1486 [NOI2004] 郁闷的出纳员 FHQ-Treap
- 大数据教程之大数据处理流程
- Node.js基础知识普及
- 程序员的进阶课-架构师之路(15)-那些年你遇到的其他树
- Python数据结构:插入排序
- adduser useradd userdel /etc/password【原创】
- php 如何将100w级的数据入库。
- 项目经理,你真的是资源不足吗?
- 集成运算放大器的简要介绍
- 植物免疫研究与抗病虫绿色防控:进展、机遇与挑战
- 路由token验证和路由守卫~~狂徒李四
- 每日三省吾身- 持续改进-持续集成
- 钛媒体乌镇咖荟 | 这场对话把“元宇宙”说透了:AI、区块链、5G技术将如何碰撞...
- IPGuard文档加密基本设置步骤
- 在s5pv210开发板上移植官方2101310版本的uboot
- linux命令行恢复回收站,Trash-Cli:Linux 上的命令行回收站工具
- 预测2019浙大计算机考研分数,2019年浙江大学考研复试分数线已出现
- 计算机病毒实验教程pdf,计算机病毒实验手册4-5-9-10-8-v40.pdf
- 清华大学保研计算机推荐信模板,清华保研推荐信模板.doc
- sh: gpustat: command not found