Codeforces 429D Tricky Function 近期点对
Posted gavanwanggw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 429D Tricky Function 近期点对相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
暴力出奇迹。
正解应该是近期点对。以i点为x轴,sum[i](前缀和)为y轴,求随意两点间的距离。
先来个科学的暴力代码:
#include<stdio.h> #include<string.h> #include<vector> #include<algorithm> #include<iostream> #include<queue> using namespace std; #define N 100050 #define ll __int64 ll a[N], sum[N]; ll n; int main(){ ll u, v, i, j, que; sum[0] = 0; while(~scanf("%I64d",&n)){ for(i=1;i<=n;i++)scanf("%I64d",&a[i]),sum[i] = sum[i-1]+a[i]; ll ans = a[2]*a[2]+1; for(i = 1; i <= n; i++){ if(i*i>=ans)break; ll tmp = ans; for(j = i+1; j<=n; j++){ tmp = min(tmp, (sum[j]-sum[j-i])*(sum[j]-sum[j-i])); } ans = min(ans, tmp+i*i); } printf("%I64d\n",ans); } return 0; }
以上是关于Codeforces 429D Tricky Function 近期点对的主要内容,如果未能解决你的问题,请参考以下文章
●CodeForces 429D Trick_Function
Codeforces1238F. The Maximum Subtree(树形dp)