题目

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

分析

不得不说,题面不错。
讲个水法,这里运用到著名的ljj水法,将\(O(n^2)\)暴力的第二层枚举修改一下,只枚举500个。
水法万岁~(≧▽≦)/~

正解:
首先把问题转化为下面这个式子:
\(Dis(i,j)=(a[i]-a[j])^2+(sum[i]-sum[j])^2\)
答案就是最近点对

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const long long maxlongint=2147483647;
const int mo=1000000007;
const int N=100005;
using namespace std;
long long a[N],n,ans=maxlongint,sum[N];
int main()
{scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);sum[i]=sum[i-1]+a[i];}for(int i=1;i<=n-1;i++)for(int j=i+1;j<=((n>i+500)?i+500:n);j++){if((sum[j]-sum[i])*(sum[j]-sum[i])+(a[i]-a[j])*(a[i]-a[j])<ans){ans=(sum[j]-sum[i])*(sum[j]-sum[i])+(a[i]-a[j])*(a[i]-a[j]);}}printf("%lld",ans);
}

转载于:https://www.cnblogs.com/chen1352/p/9048137.html

【NOIP2016提高A组模拟9.9】闭门造车相关推荐

  1. JZOJ 100024. 【NOIP2016提高A组模拟7.6】数球

    Description 小A有n个球,编号分别为1到n,小A每次都会从n个球中取出若干个球,至少取一个,至多取n个,每次取完再放回去,需要满足以下两个条件. 每次取出的球的个数两两不同. 每次取出的球 ...

  2. JZOJ4708. 【NOIP2016提高A组模拟8.20】奇洛金卡达 倒着做的思想+并查集维护

    题目大意 给定一个长度小于等于kk的字符串和qq,表示现在有qq个操作,每个操作给定两个参数li,ril_i,r_i表示把现在的字符串第lil_i到rir_i把其中编号为奇数的按顺序写下来,再在后面把 ...

  3. [JZOJ4788] 【NOIP2016提高A组模拟9.17】序列

    题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...

  4. JZOJ 4726. 【NOIP2016提高A组模拟8.22】种花

    Description 经过三十多个小时的长途跋涉,小Z和小D终于到了NOI现场--南山南中学.一进校园,小D就被花所吸引了(不要问我为什么),遍和一旁的种花园丁交(J)流(L)了起来. 他发现花的摆 ...

  5. JZOJ 4676. 【NOIP2016提高A组模拟7.21】模板串

    Description 科学家温斯顿从数据库中找到了一串相当长的字符串. 他正试图用一个模板串来重构这个字符串. 他可以将模板串复制多份,通过合适的方式拼接起来,使得最终的串与原串一致. 如果两个模板 ...

  6. JZOJ 4675. 【NOIP2016提高A组模拟7.21】Double-row

    Description 科学家温斯顿在一张超长的白纸上写下了两行数,每一行数有N个. 但他写完后觉得看起来有点不和谐.他希望重新编排,使得每一行数中没有相同的数. 他每次可以调换同一列的两个数. 请帮 ...

  7. JZOJ 4786. 【NOIP2016提高A组模拟9.17】小a的强迫症

    Description Input Sample Input 3 2 2 1 Output Sample Output 3 样例解释: Data Constraint Solution 首先,我们设之 ...

  8. 【JZOJ4819】【NOIP2016提高A组模拟10.15】算循环

    题目描述 输入 输出 样例输入 167 198 样例输出 906462341 数据范围 解法 令f(n)=∑ni=1i,g(n)=∑ni=1i2 易得ans=∑ni=1∑mj=1f(n−i+1)∗f( ...

  9. 【NOIP2016提高A组模拟10.15】打膈膜

    题目 分析 贪心, 先将怪物按生命值从小到大排序(显然按这个顺序打是最优的) 枚举可以发对少次群体攻击, 首先将所有的群体攻击发出去, 然后一个一个怪物打,当当前怪物生命值大于2,如果还有魔法值就放重 ...

最新文章

  1. 以网络安全为例的大数据可视化设计
  2. EXCEL的下拉列表
  3. 搭建nfs共享存储服务之一nfs服务端搭建
  4. ajax success function_Ajax封装
  5. C#-代码片段的使用(1) 039
  6. 操作篇 ###rip协议学习和理解##
  7. Live rates territory LRTERR is invalid for product or account hierarchy
  8. 幸运从来都只偏爱有准备的人——大龄码农的慌张日记
  9. uva 10479——The Hendrie Sequence
  10. 射命丸文 (Standard IO)
  11. ubuntu 18.04.1 使用心得
  12. 【华为云技术分享】【Python算法】分类与预测——决策树
  13. (转)基本光照模型公式
  14. h3c,nat网络地址转换
  15. html5页面左右框架布局代码,网页布局框架(示例代码)
  16. 人员基础信息一体化采集仪_重要!包头退休人员注意!涉及信息采集(附操作步骤)...
  17. validation参数检验 - 如何使用
  18. ORR R0,R0,#R1_nF:OR:R1_iA
  19. 思维模型 SMART原则
  20. catic备份mysql,Catic构建与部署

热门文章

  1. 中国WEB 2.0的质变过程
  2. python应该安装哪一个_python安装到哪个盘
  3. HTML5之article元素与section元素之间的区别?
  4. AJAX 缓存问题的两种解决方法(IE
  5. TextView图文混排,显示添加的图片,三种常用方法,亲测
  6. 几分钟内学习 Clojure
  7. golang中的互斥锁
  8. muduo之mutex和condition
  9. float x 与“零值”比较的if语句为?
  10. PDMan-2.1.3 发布:用心开源,免费的国产数据库建模工具