@[MaxFantastic](/user/518277) 力气要相加而且你这么写每次都排序会超时
by jeamark_233 @ 2023-05-26 10:40:23
@[MaxFantastic](/user/518277) 一直排序复杂度都不对啊
by 北文 @ 2023-05-26 11:17:13
```cpp
#include<iostream>
#include<algorithm>
#define MAXN 10005
using namespace std;
int a[MAXN],ans=0;
int energy=0;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n-1;i++)
{
energy+=a[i]+a[i+1];
//力气相加
a[i+1]=a[i]+a[i+1];
sort(a+i+1,a+n+1);
//排序,为下一次选择做准备
//因为合并后的堆数越来越少,所以将排序范围缩小
}
cout<<energy;
return 0;
}
```
这样改思路是对的,可是会超时。
by jeamark_233 @ 2023-05-26 11:24:35
@[MaxFantastic](/user/518277) 建议使用大根堆来进行[堆排序](https://blog.csdn.net/weixin_51609435/article/details/122982075),将最小的两项合并、两项和再插入,你这样会TLE
by c20220427 @ 2023-05-26 12:31:53