PAT (Advanced Level) Practice - 1078 Hashing(25 分)

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:平方探测法处理哈希表,但是该题只能正增长:with positive increments only。即,hi=(h(key)+i*i)%m (0 ≤ i ≤ m-1)

 

AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

int isPrime(int x)
{
    if(x<2) return 0;
    int len=sqrt(x);
    for(int i=2;i<=len;i++)
        if(x%i==0) return 0;
    return 1;
}

int vis[20000];

int main()
{
    int p,n,a,idx,f;
    scanf("%d%d",&p,&n);
    while(!isPrime(p)) p++;
    vector v;
    for(int i=0;i

 

你可能感兴趣的:(#,ACM,#,PTA,#,Hash)