zoukankan      html  css  js  c++  java
  • 毕业生的纪念礼物

    毕业生的纪念礼物

    题目描述

        现在有n个纪念品,每个纪念品都有一个种类r[i],现在要求对每个毕业生分发三个种类不同的纪念品,现在需要你来计算下共可以发给多少个毕业生?

    输入

    第一行一个整数n,1≤n≤100000,代表纪念品的个数;
    第二行包含n个整数,分别是r[1], r[2], r[3]......r[n],1≤r[i]≤1e9,表示每个纪念品所属的种类。

    输出

    输出一个整数,代表最多能够分发给的毕业生人数。

    样例输入

    样例一
    7
    1 2 3 4 5 6 7
    样例二
    14
    1 1 2 2 3 3 4 4 4 4 5 5 5 5

    样例输出

    样例一
    2
    样例二
    4

    提示


    对于样例二,一种合理的分配方式是:



    1 4 5



    2 4 5



    3 4 5



    1 2 3



    当然分配方式并不唯一。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1e5 + 10;
     
    int a[maxn];
    int num[maxn];
     
    struct node
    {
        int cnt;
        int cur;
        node(int x=0,int y=0)
        {
            cur=x;
            cnt=y;
        }
        bool operator<(const node&other)const
        {
            return cnt<other.cnt;
        }
    };
     
    priority_queue<node> pq;
     
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        sort(a+1,a+n+1);
        int now=0;
        for(int i=1;i<=n;i++)
        {
            if(a[i]!=a[i-1])
            {
                now++;
            }
            num[now]++;
        }
        for(int i=1;i<=now;i++)
        {
            pq.push(node(i,num[i]));
        }
        int ans=0;
        while(pq.size()>=3)
        {
            ans++;
            node x1=pq.top();
            pq.pop();
            node x2=pq.top();
            pq.pop();
            node x3=pq.top();
            pq.pop();
            x1.cnt--;
            x2.cnt--;
            x3.cnt--;
            if(x1.cnt>0) pq.push(x1);
            if(x2.cnt>0) pq.push(x2);
            if(x3.cnt>0) pq.push(x3);
        }
        printf("%d
    ",ans);
        return 0;
    }
    

      

  • 相关阅读:
    eclipse-SDK-3.7-win32;eclipse-java-indigo-win32;eclipse-jee-indigo-win32 区别(ZZ)
    Marketplace Client- Download
    Log4J2基本配置
    Map 迭代 两种方法
    Python Argparse模块
    Python操作Memcached
    MySQL参数调优
    Nginx调优
    JavaScript知识点总结[部分]
    python optparser模块
  • 原文地址:https://www.cnblogs.com/qing123tian/p/11110925.html
Copyright © 2011-2022 走看看