AcWing 1353. 滑雪场设计
原题链接
简单
作者:
LizMurray
,
2021-01-28 17:07:28
,
所有人可见
,
阅读 234
C++ 代码
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 10010;
int h[maxn];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>h[i];//输入n个山峰的高度
}
int res=1e8;//设置最小花费
for(int i=0;i+17<=100;i++) //枚举每一个区间
{
int l=i,r=i+17,cost=0;//cost代表花费
for(int j=0;j<n;j++) //对于给定的一个区间,对每一个山峰进行判断
{
if(h[j]<l)//比 l 低的山峰需要整改,计算花费
{
cost+=(l-h[j])*(l-h[j]);
}
else if(h[j]>r) //比r高的山峰需要整改,计算花费
{
cost+=(r-h[j])*(r-h[j]);
}
}
res = min(cost,res);//如果该方案花费小于最小花费,则更新答案
}
cout<<res;
return 0;
}