链接:https://www.nowcoder.com/acm/contest/59/E
来源:牛客网

题目描述

给你一个长为n的序列a

定义f(i,j)=(i-j)2+g(i,j)2

g是这样的一个函数
求最小的f(i,j)的值,i!=j

输入描述:

第一行一个数n
之后一行n个数表示序列a

输出描述:

输出一行一个数表示答案

输入例子:
4
1 0 0 -1
输出例子:
1

-->

示例1

输入

4
1 0 0 -1

输出

1

备注:

对于100%的数据,2 <= n <= 100000 , |ai| <= 10000

#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
using ll = long long;
const int qq = ;
ll a[qq]; inline ll sqr(ll x){ return x*x;} int main()
{
int n;
cin >> n;
for(int i=;i <= n;i++)
{
scanf("%lld",a + i);
a[i] += a[i-];
} ll minans = INF;
for(int i=;i <= n;i++)
{
int k=;
for(int j=i-;j >= &&k<=;j--,k++)
{
ll ans = sqr(i-j) + sqr(a[i]-a[j]);
if(ans < minans)
minans = ans;
}
}
cout << minans << endl;
return ;
}

1.第一处是计算从L到R区间的和用 (a[R] - a[L]) 其中 a[ i ] 是从开头加到第 i 个位置,在多组数据的时候可以避免重复计算。

2.第二个就是因为求得是最小值所以 (i - j)一定不会很大

3.牛客网可以看别人代码,蛮好的,要多学习一点大神们的代码方式。

最新文章

  1. LeetCode 88 Merge Sorted Array
  2. 利用jQuery内置的data()方法存储数据
  3. 62.Android之各分辨率定义的图片规格
  4. Document types require more than xhtml1.0
  5. JS constructor
  6. C# 文件压缩与解压(ZIP格式)
  7. 好!recover-binary-search-tree(难)&amp; 两种好的空间O(n)解法 &amp; 空间O(1)解法
  8. js 获取 当前时间 时间差 时间戳 倒计时
  9. Chromium Graphics: GPUclient的原理和实现分析之间的同步机制-Part II
  10. 建立Cent OS7server有些问题需要注意
  11. Laravel框架开发规范-修订前期版
  12. Local declaration of &#39;XXX&#39; hides instance variable
  13. Element is not clickable at point error in chrome
  14. js常见排序
  15. Linux 环境 Intelij Idea 安装与快捷图标配置
  16. 吴恩达机器学习笔记41-支持向量机的优化目标(Optimization Objective of Support Vector Machines)
  17. Oracle Instance and Database
  18. thinkphp如何利用反射实现钩子方法
  19. jquery.pagination.js添加跳转页
  20. Inno Setup脚本

热门文章

  1. SNMP学习笔记之Python的netsnmp和pysnmp的性能对比
  2. Adobe漏洞攻击
  3. linux内核分析 第四周
  4. TensorFlow入门(四) name / variable_scope 的使
  5. Duilib Edit编辑框禁止输入中文的方法
  6. VC++开机自动启动程序的几种方法 (转载)
  7. Django组件(二) Django之Form
  8. 论文笔记——DenseNet
  9. gulp报错插件gulp-notify 配置项
  10. C#学习笔记(十九):字典