poj 3253(水题,哈夫曼编码)
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; int main(){ long long n,i,data[20005],p,q,sum; scanf("%lld",&n); for(i=0;i<n;i++) scanf("%d",&data[i]); sort(data,data+n); sum = 0; for(i=0;i<n-1;i++){ data[i+1] += data[i]; sum += data[i+1]; // sort(data+1,data+n); p = data[i+1]; for(q=i+2;q<n&&data[q]<p;q++){ data[q-1] = data[q]; } data[q-1] = p; // cout<<n<<" "; // for(int j=0;j<n;j++) // cout<<data[j]<<" "; // cout<<endl; } printf("%lld\n",sum); return 0; }

浙公网安备 33010602011771号