zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1078. Hashing (25)

    二次探测法。表示第一次听说这东西。。。

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<map>
    #include<stack>
    #include<queue>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    const int maxn=20000;
    bool flag[maxn];
    long long m,n;
    
    bool prime(long long x)
    {
        if(x==1) return 0;
        if(x==2) return 1;
        for(long long i=2;i*i<=x;i++)
            if(x%i==0) return 0;
        return 1;
    }
    
    int main()
    {
        memset(flag,0,sizeof flag);
        scanf("%lld%lld",&m,&n);
    
        while(1)
        {
            if(prime(m)) break;
            m++;
        }
    
        for(long long i=1;i<=n;i++)
        {
            long long num; scanf("%lld",&num);
    
            int p=-1;
            for(long long j=0;j<m;j++){
    
                if(flag[(num+j*j)%m]==0)
                {
                    flag[(num+j*j)%m]=1;
                    p=(num+j*j)%m; break;
                }
            }
            if(p==-1) printf("-");
            else printf("%d",p);
    
            if(i<n) printf(" ");
            else printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    JZOJ.2117. 【2016-12-30普及组模拟】台风
    团队合作
    长沙游记
    统计
    html....
    OI之路
    三鑫普及组模拟赛
    牛顿迭代法
    台风
    gcd
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5636186.html
Copyright © 2011-2022 走看看