CoderForce 140C-New Year Snowmen(貪心)

來源:互聯網
上載者:User

標籤:

題目大意:有n個已知半徑的雪球。堆一個雪人需要三個尺寸不同的雪球,問用這些雪球最多能堆多少個雪人?

題目分析:先統計一下每種尺寸的球的個數,從三種最多的種類中各取出一個堆成雪人,這樣貪心能保證的到的數目最多。

 

代碼如下:

# include<iostream># include<map># include<vector># include<cstdio># include<queue># include<algorithm>using namespace std;struct Node{    int val,cnt;    Node(int _val,int _cnt):val(_val),cnt(_cnt){}    bool operator < (const Node &a) const{        return cnt<a.cnt;    }};int ans[40005][3],n;map<int,int>mp;priority_queue<Node>q;void solve(){    int cnt=0;    while(!q.empty()){        Node a=q.top();        q.pop();        if(q.empty()) break;        Node b=q.top();        q.pop();        if(q.empty()) break;        Node c=q.top();        q.pop();        ans[cnt][0]=a.val;        ans[cnt][1]=b.val;        ans[cnt][2]=c.val;        ++cnt;        if(a.cnt-1>0) q.push(Node(a.val,a.cnt-1));        if(b.cnt-1>0) q.push(Node(b.val,b.cnt-1));        if(c.cnt-1>0) q.push(Node(c.val,c.cnt-1));    }    printf("%d\n",cnt);    for(int i=0;i<cnt;++i){        sort(ans[i],ans[i]+3);        printf("%d %d %d\n",ans[i][2],ans[i][1],ans[i][0]);    }}int main(){    int a;    while(~scanf("%d",&n))    {        mp.clear();        for(int i=0;i<n;++i){            scanf("%d",&a);            ++mp[a];        }        map<int,int>::iterator it;        while(!q.empty()) q.pop();        for(it=mp.begin();it!=mp.end();++it){            q.push(Node(it->first,it->second));        }        solve();    }    return 0;}

  

CoderForce 140C-New Year Snowmen(貪心)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.