逻辑的严谨性:可能我们在解决某些问题的时候没有仔细想也过了,但是可能在实际做题的时候就会想不出来,因此严谨的数学证明是至关重要的。
#include<iostream>
#include<cstring>
using namespace std;
const int N = 1010;
int h[N],n,res=1e8; //极端情况是1e3*1e4,于是我们取1e8肯定没有问题
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>h[i];
}
for(int i=0;i+17<=100;i++) //枚举每一个区间
{
int l=i,r=i+17,cost=0;
for(int j=0;j<n;j++) //对于给定的一个区间,对每一个山峰进行判断
{
if(h[j]<l) cost+=(l-h[j])*(l-h[j]);
else if(h[j]>r) cost+=(r-h[j])*(r-h[j]);
}
res = min(cost,res);
}
cout<<res;
return 0;
}