列表

详情


NC15052. 求最值

描述

给你一个长为n的序列a

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

g是这样的一个函数

求最小的f(i,j)的值,i!=j


输入描述

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

输出描述

输出一行一个数表示答案

示例1

输入:

4
1 0 0 -1

输出:

1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 40ms, 内存消耗: 1496K, 提交时间: 2019-09-17 21:02:01

#include<bits/stdc++.h>
using namespace std;
int a[100010];
long long m=1e18,t;
int main(){int n,i,j,k,l;cin>>n;for(i=1;i<=n;i++)cin>>a[i];for(i=1;i<=2;i++){for(j=0;j<=n-i;j++){t=0;for(l=1;l<=i;l++)t+=a[j+l];m=min(m,t*t+(i)*(i));}}cout<<m;return 0;}

上一题