1 条题解
-
0
哈夫曼树最小代价合并问题
#include<bits/stdc++.h> using namespace std; priority_queue<int>Q; int main() { int n;scanf("%d", &n); for(int i=1;i<=n;i++) { int x;scanf("%d", &x); Q.push(-x); } int ans=0; for(int i=1;i<n;i++) { int x=Q.top();Q.pop(); x+=Q.top();Q.pop(); ans+=-x; Q.push(x); } printf("%d\n", ans); return 0; }
- 1
信息
- ID
- 818
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 311
- 已通过
- 89
- 上传者