当前位置: 代码迷 >> 综合 >> 洛谷 P1090 合并果子 / [USACO06NOV] Fence Repair G
  详细解决方案

洛谷 P1090 合并果子 / [USACO06NOV] Fence Repair G

热度:7   发布时间:2023-12-02 15:30:53.0

做题地址:https://www.luogu.com.cn/problem/P1090


这一题是贪心问题,我们只需要每次拿出两个最小的水果堆来合并就好了

这里使用STL容器里的小根堆来做此题

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>using namespace std;int n;
priority_queue<int, vector<int>, greater<int>> q;int main(){
    cin >> n;while (n -- ){
    int x; cin >> x;q.push(x);}int res = 0;while (q.size() > 1){
    int x = q.top(); q.pop();int y = q.top(); q.pop();res += x + y;q.push(x + y);}cout << res << endl;return 0;
}
  相关解决方案