1353. 滑雪场设计

(minh)(n)座山峰高度的最小值,(maxh)(n)座山峰高度的最大值。

枚举最终调整后的最低峰的高度为(k),则最高峰的高度为(k+17),对于低于最终最低峰高度的山峰或高于最终最高峰高度的山峰,对他们进行调整。

const int N=1010;
int h[N];
int n;

int main()
{
    cin>>n;
    
    int minh=100,maxh=0;
    for(int i=0;i<n;i++)
    {
        cin>>h[i];
        minh=min(minh,h[i]);
        maxh=max(maxh,h[i]);
    }
    
    int res=INF;
    for(int k=minh;k+17<=maxh;k++)
    {
        int sum=0;
        for(int i=0;i<n;i++)
        {
            if(h[i] < k) sum+=(h[i]-k)*(h[i]-k);
            if(h[i] > k+17) sum+=(h[i]-k-17)*(h[i]-k-17);
        }
        res=min(res,sum);
    }
    
    cout<<res<<endl;

    //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14726627.html