按照lrj大大的训练指南上编的
真心给力
A不必保存,没有想法...
to do++
#include<stdio.h>
#include<algorithm>
#define LL long long
LL a[1000011];
LL c[1000011];
LL abs(LL a){
if(a>0)return a;
return -a;
}
int main(){
LL n;
while(scanf("%lld",&n)!=EOF&&n){
int i;
for(i=1;i<=n;i++)scanf("%lld",&a[i]);
LL ev=0;
for(i=1;i<=n;i++)ev+=a[i];
ev/=n;
c[1]=0;
for(i=2;i<=n;i++)c[i]=c[i-1]+a[i-1]-ev;
std::sort(c+1,c+n+1);
LL x=c[n/2+1];
LL res=0;
for(i=1;i<=n;i++)res+=abs(x-c[i]);
printf("%lld\n",res);
}
return 0;
}
to do++
本文展示了一个使用C++实现的算法优化案例,通过对数组进行处理并寻找最优解的方法来减少计算资源消耗。该算法首先计算平均值,接着利用中位数进行误差最小化,最终输出最小化的总误差。
440

被折叠的 条评论
为什么被折叠?



