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;
    }
    
  • 相关阅读:
    docker 简单使用
    apache 目录网站显示indexs
    MySQL索引失效的几种情况
    mysql 基本常用语句
    UNIX 版本
    B语言的发明者 Ken Thomson & C语言的发明者Dennis Ritchie
    My SQl 积累
    C# DGV多行选择
    C#中很模糊查询DGV中数据的两种方法
    网址
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367201.html
Copyright © 2011-2022 走看看