zoukankan      html  css  js  c++  java
  • HDOJ.1800 Flying to the Mars(贪心+map)

    Flying to the Mars

    点我挑战题目

    题意分析

    有n个人,每个人都有一定的等级,高等级的人可以教低等级的人骑扫帚,并且他们可以共用一个扫帚,问至少需要几个扫帚。
    这道题与最少拦截系统有异曲同工之妙。不同在于这道题可以排序,而最少拦截系统不能排序。我们想一下,把这些人排好序,并统计每个等级的人的个数。一次从最高等级到最低等级划掉一个人(可以理解为这些人互相教并且骑一个扫帚),一直划,直到最后一个人。这样可以看出来,扫帚的数量肯定是由某个等级的人数确定的。并且那个等级的人数最多。因此,只要统计出等数最多的等级就好,最后输出那个等级的人数。我采用了map映射,这样较为简单。

    代码总览

    /*
        Title:HDOJ.1800
        Author:pengwill
        Date:2016-11-25
    */
    #include <iostream>
    #include <algorithm>
    #include <map>
    #include <stdio.h>
    #define max 3005
    using namespace std;
    typedef map<int,int> mp;
    mp p; mp::iterator iter;
    
    int main()
    {
        int n;
        while(scanf("%d",&n) != EOF){
            int i,temp;
            for(i = 0;i<n;i++){
                scanf("%d",&temp);
                p[temp]++;
            }
            int nmax = 0;
            for(iter = p.begin();iter != p.end();iter++){
                if(iter->second > nmax){
                    nmax = iter->second;
                    //titer = iter;
                }
            }
            p.clear();
            printf("%d
    ",nmax);
        }
    
        return 0;
    }
    
  • 相关阅读:
    c#: 传不确定个数参的方法
    导出Excel并设置样式
    无线网络国际会议排名
    初学Java接口
    初学Java修饰符
    [转]计算机类核心期刊投稿的一些资料汇总
    初学Java数据类型和变量
    初学Java数组
    初学Java运算符
    几个著名P2P会议与期刊及领军人物
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367201.html
Copyright © 2011-2022 走看看