题解 | #哈夫曼树#
哈夫曼树
https://www.nowcoder.com/practice/162753046d5f47c7aac01a5b2fcda155
#include <iostream> #include <queue> using namespace std; int main() { priority_queue<int> myque; int n; scanf("%d",&n); for(int i=0;i<n;i++){ int x; scanf("%d",&x); myque.push(-x); } int ans=0; while(myque.size()>1){ int a = myque.top(); myque.pop(); int b = myque.top(); myque.pop(); int c = a+b; myque.push(c); ans+=c; } printf("%d",-ans); } // 64 位输出请用 printf("%lld")