AcWing 1353. 滑雪场设计
原题链接
简单
作者:
黑帮大白菜
,
2021-01-24 22:43:31
,
所有人可见
,
阅读 463
暴力枚举
#include <iostream>
#include <cstdio>
#include <climits>
using namespace std;
const int N = 1e4+10;
int m[N], n;
int main()
{
cin >> n;
for(int i = 0;i < n;i ++) cin >> m[i];
int ans = INT_MAX;
// 枚举每一个分界线 (使得所有山的高度区间[h, h + 17]) 的高度,求解每一种方案的花费
for(int h = 1; h <= 100 - 17; h ++){
int t = 0;
for(int i = 0;i < n;i ++){
if(m[i] < h) t += (h - m[i]) * (h - m[i]);
else if(m[i] > h + 17) t += (m[i] - h - 17) * (m[i] - h - 17);
}
ans = min(ans,t); //最小值即为答案
}
cout << ans << endl;
return 0;
}