有话要说
这题真真真的是一道水题啊!!然而我没注意看数据范围(0~100),在那苦苦地想一般规律,还WA了,其实数据范围这么小,完全可以列举每种情况,得到最小解。
解题思路
枚举
解题步骤
1.循环 i 从17到100(枚举现在下界和上界,下界为i-17,上界为i)
2.依次看每座山峰是否在上下界以内,如果不是,则需要处理到上下界
3.每进行一次i循环,看是否花费小于当前最小花费,并更新最小花费.
for(int i=17;i<=100;i++)
{
int sum=0;
for(int j=1;j<=n;j++)
{
if(a[j]<i-17)
{
sum+=pow((i-17-a[j]),2);
continue;
}
if(a[j]>i)
{
sum+=pow(a[j]-i,2);
}
}
if(sum<ans)ans=sum;
}