這道就是相當於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<