PAT (Advanced Level) Practice - 1145 Hashing - Average Search Time(25 分)
发布日期:2021-06-30 23:43:06 浏览次数:2 分类:技术文章

本文共 681 字,大约阅读时间需要 2 分钟。

题目链接:

 

题目大意:略。

 

解题思路:平方探测法处理哈希表,但是该题只能正增长:with positive increments only。即,hi=(h(key)+i*i)%m (0 ≤ i ≤ m-1),注意:类似样例中“15”是插入不进的这种数,理论上应该是 [0,size-1] == size 次,但是这里还要额外 +1 次,因为这 1 次是出于 di==size 时的探测才知道是否进入循环了,所以该次也要算进去。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=1e4+10;int vis[maxn], times[maxn*10];int isPrime(int x){ if(x<2) return 0; for(int i=2;i<=sqrt(x);i++) if(x%i==0) return 0; return 1;}int main(){ int p,n,q,a; scanf("%d%d%d",&p,&n,&q); while(!isPrime(p)) p++; for(int i=0;i

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82022120 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) Practice - 1146 Topological Order(25 分)
下一篇:PAT (Advanced Level) Practice - 1138 Postorder Traversal(25 分)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月29日 01时00分08秒