2021ACM俱乐部后备营个人训练赛第12场k:在一起

Evi有N个整数a1,a2,…,aN。他的目标是通过变换其中的一些整数得到N个相等的整数。

他最多可以变换一次每个整数。将一个整数x转换成另一个整数y需要花费他(x−y)2美元。即使ai=aj(i≠j),他也必须分别支付转换它们的成本。

找到实现目标的最小总成本。

约束条件

1≤N≤100

−100≤ai≤100

输入

标准输入的输入格式如下:

a1 a2。。。安

输出

打印实现Evi目标的最低总成本。

样例输

2

4 8

复印件

8

提示

将两者转换为6s将花费(4−6)2+(8−6)2=8美元,这是最低成本。

HUSTOJ 2021许可的GPLv2

暴力枚举

#include<bits/stdc++.h>
int cnt=0;
using namespace std;
typedef struct stu{
    
    
    int x,j;
}sss;
int cmp(int a,int b)
{
    
    
    return a>b;
}
typedef long long ll;
const int maxn=1e3+199;
 
int a[130];
int k,n;
int sum=0;
 
int main(){
    
    
 
    scanf("%d",&n);
    int minn=101,maxx=-101;
    for(int i=1;i<=n;i++){
    
    
        scanf("%d",&a[i]);
        minn=min(minn,a[i]);
        maxx=max(maxx,a[i]);
    }
 
    int res=1000000;
    for(int i=minn;i<=maxx;i++){
    
    
        int temp=0;
        for(int j=1;j<=n;j++)
            temp+=( (a[j]-i)*(a[j]-i) );
        res=min(res,temp);
    }
 
    printf("%d",res);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_52172364/article/details/113093279