zoukankan      html  css  js  c++  java
  • Codeforces Round #FF (Div. 2) A. DZY Loves Hash

    DZY has a hash table with p buckets, numbered from 0 to p - 1. He wants to insert n numbers, in the order they are given, into the hash table. For the i-th number xi, DZY will put it into the bucket numbered h(xi), where h(x) is the hash function. In this problem we will assume, that h(x) = x mod p. Operation a mod b denotes taking a remainder after division a by b.

    However, each bucket can contain no more than one element. If DZY wants to insert an number into a bucket which is already filled, we say a "conflict" happens. Suppose the first conflict happens right after the i-th insertion, you should output i. If no conflict happens, just output -1.

    Input

    The first line contains two integers, p and n (2 ≤ p, n ≤ 300). Then n lines follow. The i-th of them contains an integer xi (0 ≤ xi ≤ 109).

    Output

    Output a single integer — the answer to the problem.

    Sample test(s)
    Input
    10 5
    0
    21
    53
    41
    53
    
    Output
    4
    
    Input
    5 5
    0
    1
    2
    3
    4
    
    Output
    -1


    注意数据范围p,m<=200。尽管输入的数据较大,刚開始自己mod1000000001,发现这不能有冲突了,而且还要标记下第一个发生冲突,以后的冲突能够忽略


    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<cmath>
    #include<algorithm>
    #define LL int
    #define inf 0x3f3f3f3f
    using namespace std;
    int ha[10002];
    int bj;
    int main()
    {
        LL n,m,i,j,k,l;
        while(~scanf("%d%d",&n,&m))
        {
            bj=0;
            memset(ha,0,sizeof(ha) );
            for(i=1;i<=m;i++)
            {
                scanf("%d",&k);
                k=k%n;//对当前的输入值的个数进行%
                if(!ha[k])
                {
                    ha[k]++;
                }
                else if(ha[k]!=0&&!bj  )//仅仅取。符合条件的第一个<span id="transmark"></span>
                {
                    bj=i;
                }
            }
            if(!bj)
            printf("-1
    ");
            else printf("%d
    ",bj);
        }
        return 0;
    }
    
    
    


  • 相关阅读:
    隐式类型转换
    STL::allocator rebind
    Proxy Class(代理类)
    C++ 没有合适的默认构造函数(无参数构造函数)
    E
    C
    Multiplication Puzzle POJ
    Brackets POJ
    Halloween Costumes LightOJ
    ACwing 139. 回文子串的最大长度(二分+Hash)
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7234827.html
Copyright © 2011-2022 走看看