1 条题解
- 
  0
没想到数据结构班的内容这么难,跳过了基础直接上强度,比如这题,到底是让我学一个STL的使用还是去理解堆算法,迷惑迷惑,用自建堆算法我实现不了。
#include #include using namespace std;
int main() { int n; cin >> n; priority_queue<int, vector, greater> min_heap;
for (int i = 0; i < n; ++i) { int length; cin >> length; min_heap.push(length); } long long total_cost = 0; while (min_heap.size() > 1) { int a = min_heap.top(); min_heap.pop(); int b = min_heap.top(); min_heap.pop(); int merged = a + b; total_cost += merged; min_heap.push(merged); } cout << total_cost << endl; return 0;}
 
- 1
 
信息
- ID
 - 2594
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 10
 - 标签
 - 递交数
 - 7
 - 已通过
 - 3
 - 上传者