zoukankan      html  css  js  c++  java
  • CoderForce 140C-New Year Snowmen(贪心)

    题目大意:有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
    ",cnt);
        for(int i=0;i<cnt;++i){
            sort(ans[i],ans[i]+3);
            printf("%d %d %d
    ",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;
    }
    

      

  • 相关阅读:
    Solidity字符串类型
    Solidity中如何判断mapping中某个键是否为空呢?
    CentOS7 内核模块管理
    Centos7 搭建pptp服务器
    Python实现批量执行华为交换机脚本
    CentOS7 硬盘检测
    华为交换机SOCK CPU占用率高处理方法
    CentOS7 iptables安装及操作
    CentOS7 修复grub.cfg文件
    CentOS7 修复MBR引导
  • 原文地址:https://www.cnblogs.com/20143605--pcx/p/5164727.html
Copyright © 2011-2022 走看看