zoukankan      html  css  js  c++  java
  • hdu 1029(hash)

    传送门:Ignatius and the Princess IV

    题意:给n个数,找出出现次数大于等于(n+1)/2的那个数。

    分析:大水题,排个序输出中间那个即可,这里随便写个HASHMAP找出次数最大那个。

    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #define N 1000010
    #define inf 0x3f3f3f3f
    using namespace std;
    const int HASH=1000007;
    const int MAXN=1000010;
    struct HASHMAP
    {
        int head[HASH],next[MAXN],size;
        int state[MAXN],num[MAXN];
        void init()
        {
            size=0;
            memset(head,-1,sizeof(head));
            memset(num,0,sizeof(num));
        }
        int insert(int val)
        {
            int h=(val%HASH+HASH)%HASH;
            for(int i=head[h];~i;i=next[i])
            {
                if(val==state[i])
                {
                    num[i]++;
                    return num[i];
                }
            }
            state[size]=val;
            num[size]=1;
            next[size]=head[h];
            head[h]=size++;
            return 1;
        }
    }H;
    int main()
    {
        int n,x;
        while(scanf("%d",&n)>0)
        {
            H.init();
            int mx=0,ans=0;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&x);
                int res=H.insert(x);
                if(res>mx)
                {
                    ans=x;mx=res;
                }
            }
            printf("%d
    ",ans);
        }
    }
    View Code
  • 相关阅读:
    python flask学习笔记
    语音识别2 -- Listen,Attend,and Spell (LAS)
    语音识别 1--概述
    keras中seq2seq实现
    ResNet模型
    Bytes类型
    Python操作文件
    Pyhon基本数据类型
    ping
    find
  • 原文地址:https://www.cnblogs.com/lienus/p/4328802.html
Copyright © 2011-2022 走看看