恳请大神指点

#include<iostream>
#include<algorithm>
using namespace std;
int a[10005],s[10005];
int main()
{
int n,m=0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a,a+n+1);
for(int i=1;i<=n;i++)
s[i]+=s[i-1]+a[i];
for(int i=2;i<=n;i++)
m+=s[i];
cout<<m;
return 0;
}

1 条评论

  • @ 2019-02-16 11:25:19

    每合并一次之后从新排序,
    排序后合并最小的两个。

    就是建立哈夫曼树

  • 1

信息

ID
1097
难度
6
分类
贪心 点击显示
标签
递交数
23906
已通过
6330
通过率
26%
被复制
41
上传者