题解:把高度差为17的长度枚举一遍,然后找出最小的即可。时间复杂度最大为0(10^6)。
#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long LL;
typedef pair<int ,int> PII;
const int N=1e5+10;
const int mod=100000007;
unordered_map<string,int > mp;int main(){int n;cin>>n;int a[1010];for(int i=0;i<n;i++)cin>>a[i];LL minn=0x3f3f3f3f3f3f3f3f;for(int i=0;i<=100-17;i++){int j=i+17;LL sum=0;for(int k=0;k<n;k++){if(a[k]<i) sum+=(a[k]-i)*(a[k]-i);if(a[k]>j) sum+=(a[k]-j)*(a[k]-j);}minn=min(minn,sum);}cout<<minn;return 0;
}
本文发布于:2024-01-28 18:32:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064379619415.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |