poj 3253 Fence Repair(優先隊列+哈夫曼樹),poj3253

來源:互聯網
上載者:User

poj 3253 Fence Repair(優先隊列+哈夫曼樹),poj3253

題目地址:POJ 3253

哈夫曼樹的結構就是一個二叉樹,每一個父節點都是兩個子節點的和。這個題就是可以從子節點向根節點推。

每次選擇兩個最小的進行合并。將合并後的值繼續加進優先隊列中。直至還剩下一個元素為止。

代碼如下:

#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include<algorithm>using namespace std;struct node{    __int64 x;    bool operator <(const node &a) const    {        return x>a.x;    }};int main(){    __int64 n, i, j, x, ans;    while(scanf("%I64d",&n)!=EOF)    {        ans=0;        priority_queue<node>q;        node p, f1, f2, s;        for(i=0; i<n; i++)        {            scanf("%I64d",&p.x);            q.push(p);        }        while(!q.empty())        {            f1=q.top();            q.pop();            if(q.empty())            {                break;            }            f2=q.top();            q.pop();            s.x=f1.x+f2.x;            q.push(s);            //printf("%d  %d\n",f1.x,f2.x);            ans+=s.x;        }        printf("%I64d\n",ans);    }    return 0;}





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.