ARC100C Linear Approximation

传送门

分析

这道题真的好水呀QwQ,想必大家都知道对于式子|x-2|+|x-3|x取什么值可以使式子结果最小,这道题也是这个原理,只需要将要额外减的1、2、3……提前减掉就行了。

代码

#include<bits/stdc++.h>
using namespace std;
long long a[200010];
int main(){
      long long n,m,i,ans=0;
      cin>>n;
      for(i=1;i<=n;i++){
          scanf("%lld",&a[i]);
          a[i]-=i;
      }
      sort(a+1,a+n+1);
      m=a[(n-1)/2+1];
      for(i=1;i<=n;i++)
        ans+=abs(m-a[i]);
      cout<<ans<<endl;
      return 0;
}
原文地址:https://www.cnblogs.com/yzxverygood/p/9346927.html