码迷,mamicode.com
首页 > 其他好文 > 详细

poj 3053 Fence Repair

时间:2014-11-10 19:32:09      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

题目链接http://poj.org/problem?id=3253

思路

题目与哈夫曼编码原理相同,使用优先队列与贪心思想;读入数据在优先队列中,弹出两个数计算它们的和,再压入队列中;

 

代码: 

#include <iostream>
#include <queue>
using namespace std;

struct cmp
{
    bool operator() (long long a, long long b)
    {
        return a > b;
    }
};

int main()
{
    priority_queue<long long, vector<long long>, cmp> Q;
    long long n, ans = 0;

    cin >> n;
    for (int i = 0; i < n; ++i)
    {
        long long num;

        cin >> num;
        Q.push(num);
    }

    long long a, b;
    while (Q.size() != 1)
    {
        a = Q.top(); Q.pop();
        b = Q.top(); Q.pop();
        ans += a + b;
        Q.push(a + b);
    }

    cout << ans << endl;

    return 0;
}

 

poj 3053 Fence Repair

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/tallisHe/p/4087809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!