【NOIP2016提高A组模拟9.9】闭门造车
题目
自从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】闭门造车相关推荐
- JZOJ 100024. 【NOIP2016提高A组模拟7.6】数球
Description 小A有n个球,编号分别为1到n,小A每次都会从n个球中取出若干个球,至少取一个,至多取n个,每次取完再放回去,需要满足以下两个条件. 每次取出的球的个数两两不同. 每次取出的球 ...
- JZOJ4708. 【NOIP2016提高A组模拟8.20】奇洛金卡达 倒着做的思想+并查集维护
题目大意 给定一个长度小于等于kk的字符串和qq,表示现在有qq个操作,每个操作给定两个参数li,ril_i,r_i表示把现在的字符串第lil_i到rir_i把其中编号为奇数的按顺序写下来,再在后面把 ...
- [JZOJ4788] 【NOIP2016提高A组模拟9.17】序列
题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...
- JZOJ 4726. 【NOIP2016提高A组模拟8.22】种花
Description 经过三十多个小时的长途跋涉,小Z和小D终于到了NOI现场--南山南中学.一进校园,小D就被花所吸引了(不要问我为什么),遍和一旁的种花园丁交(J)流(L)了起来. 他发现花的摆 ...
- JZOJ 4676. 【NOIP2016提高A组模拟7.21】模板串
Description 科学家温斯顿从数据库中找到了一串相当长的字符串. 他正试图用一个模板串来重构这个字符串. 他可以将模板串复制多份,通过合适的方式拼接起来,使得最终的串与原串一致. 如果两个模板 ...
- JZOJ 4675. 【NOIP2016提高A组模拟7.21】Double-row
Description 科学家温斯顿在一张超长的白纸上写下了两行数,每一行数有N个. 但他写完后觉得看起来有点不和谐.他希望重新编排,使得每一行数中没有相同的数. 他每次可以调换同一列的两个数. 请帮 ...
- JZOJ 4786. 【NOIP2016提高A组模拟9.17】小a的强迫症
Description Input Sample Input 3 2 2 1 Output Sample Output 3 样例解释: Data Constraint Solution 首先,我们设之 ...
- 【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( ...
- 【NOIP2016提高A组模拟10.15】打膈膜
题目 分析 贪心, 先将怪物按生命值从小到大排序(显然按这个顺序打是最优的) 枚举可以发对少次群体攻击, 首先将所有的群体攻击发出去, 然后一个一个怪物打,当当前怪物生命值大于2,如果还有魔法值就放重 ...
最新文章
- 以网络安全为例的大数据可视化设计
- EXCEL的下拉列表
- 搭建nfs共享存储服务之一nfs服务端搭建
- ajax success function_Ajax封装
- C#-代码片段的使用(1) 039
- 操作篇 ###rip协议学习和理解##
- Live rates territory LRTERR is invalid for product or account hierarchy
- 幸运从来都只偏爱有准备的人——大龄码农的慌张日记
- uva 10479——The Hendrie Sequence
- 射命丸文 (Standard IO)
- ubuntu 18.04.1 使用心得
- 【华为云技术分享】【Python算法】分类与预测——决策树
- (转)基本光照模型公式
- h3c,nat网络地址转换
- html5页面左右框架布局代码,网页布局框架(示例代码)
- 人员基础信息一体化采集仪_重要!包头退休人员注意!涉及信息采集(附操作步骤)...
- validation参数检验 - 如何使用
- ORR R0,R0,#R1_nF:OR:R1_iA
- 思维模型 SMART原则
- catic备份mysql,Catic构建与部署