滑雪场设计

由题意可知, 最后所有的山的高度都在一个相差17的区间之内,所以维持一个大小为17的区间,从小到大遍历即可

#include<bits/stdc++.h>
using namespace std;
const int N = 10000;
int a[N];
map<int,int>b;
int main()
{
   int n;
   cin >> n;
   for(int i = 0; i < n; i ++)
   {
       cin >> a[i];
   }
   int  res = INT_MAX;
  for(int i = 0; i <= 83; i ++)//假设i为最小高度
  {
      int ans = 0;
      for(int j = 0; j < n ; j ++)
      {
          if(a[j] < i)ans += abs(a[j] - i) * abs(a[j] - i);
          if(a[j] > i + 17)ans += (a[j] - i - 17) * (a[j] - i - 17);
      }
      if(ans < res)res = ans;
  }
   cout << res <<endl;
   return 0;
}


全部评论

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务