题解CF1106C
本题应该降橙
CF1106C题目传送门
题意简述
给你
一组至少要有
题目保证
思路
这个问题我们需要证明一个点:
众所周知,在
所以我们让
不是的。
因为一个
然而,实际的解是
所以,我们让
为什么要平均呢?
看这个例子就知道了:
再到
所以,分成任意组,极差越大,答案越大。
而我们求的是最小,所以我们应该让它平均分。
而为了平均分,我们需要使用时间复杂度为
当然,手打快排,归并等时间复杂度为
最后,还有
(正常
ctjer 最喜欢的代码环节
AC Code 1:
#include<iostream>
#include<algorithm>
using namespace std;
int a[300001],n;
long long ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n/2;i++){
ans+=(a[i]+a[n-i+1])*(a[i]+a[n-i+1]);
}
cout<<ans;
return 0;
}
AC Code 2:
#include<iostream>
#include<algorithm>
using namespace std;
int a[300001],x,n,b[10001],p;
long long ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
b[x]++;
}
for(int i=1;i<=10000;i++){
for(int j=1;j<=b[i];j++){
a[++p]=i;
}
}
for(int i=1;i<=p/2;i++){
ans+=(a[i]+a[n-i+1])*(a[i]+a[n-i+1]);
}
cout<<ans;
return 0;
}
感谢各位在评论区
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】