codeforces 429D Tricky Function

2015-01-24 05:31:01 · 作者: · 浏览: 2

这道就是相当于i表示x轴,sum[i]表示y轴,sum[i]表示前i个数的和

那么计算最小两点之间的距离

所谓的就是看了题解恍然大悟的题,就是算的时候先算的j->i的距离,

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; typedef long long ll; #define N 11111 ll a[N]; ll sum[N]; int ans; int main(){ int n; sum[0]=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("I64d",&a[i]); sum[i]=sum[i-1]+a[i]; } ans=a[2]*a[2]+1; for(ll i=1;i
      
       ans) break;//so important ll t=ans; for(int j=i+1;j<=n;j++){ t=min(t,(sum[j]-sum[j-i])*(sum[j]-sum[j-i]); } ans=min(ans,t+i*i); } cout<