PAT 1078 Hashing
来源:互联网 发布:恢复数据 英语 编辑:程序博客网 时间:2024/05/16 16:26
# include <stdio.h># include <algorithm># include <string.h># include <iostream># include <math.h>using namespace std;int prime[10100];int vis[10110];int cot;void init_prime(){ memset(vis,0,sizeof(vis)); cot=0; for(int i=2; i<=10100; i++) { if(!vis[i]) { prime[cot++]=i; for(int j=i*2; j<=10100; j+=i) vis[j]=1; } }}int main(){ int n,size1,i,a,ans,j; int map[10100]; while(~scanf("%d%d",&size1,&n)) { init_prime(); memset(map,0,sizeof(map)); for(i=0; i<cot; i++) { if(prime[i]>=size1) { size1=prime[i]; break; } } for(i=0; i<n; i++) { scanf("%d",&a); ans=a%size1; if(!map[ans]) { if(i==0) printf("%d",ans); else printf(" %d",ans); map[ans]=1; } else/*二次探测法的公式: hi=(h(key)+i*i)%size1 1≤i≤size1-1 //即di=i2 即探查序列为d=h(key),d+1^2,d+2^2,…d+(size1-1)^2*/ { for(j=1; j<size1; j++) { int kk=(ans+j*j)%size1; if(!map[kk]) { map[kk]=1; if(i==0) printf("%d",kk); else printf(" %d",kk); break; } } if(j==size1) { if(i==0) printf("-"); else printf(" -"); } } } printf("\n"); } return 0;}
0 0
- PAT 1078 Hashing (25)
- pat 1078 Hashing
- PAT 1078 Hashing
- pat 1078 Hashing
- pat甲 1078 Hashing
- PAT 甲级 1078 Hashing
- PAT 1078-Hashing (25)
- PAT-Hashing
- Pat(Advanced Level)Practice--1078(Hashing)
- PAT (Advanced Level) Practise 1078 Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (模拟)
- pat 1078. Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (25)
- This is it——语言是一门艺术
- 内存的对齐和补齐
- Java常用设计模式
- cocos2d-x常用动作
- 我的第一篇博文----随意谈谈开通博客的目的、宗旨和计划
- PAT 1078 Hashing
- 浅谈三层学习
- Map的更新操作
- 彻底解决Android GPS没法定位这一顽固问题
- UI Overview
- 测试方法三:电脑+USB转TTL串口模块+HC06
- Hibernate的三种状态
- 2014.11.26静态与非静态
- 查找HTML下所有的节点名称,节点类型,节点值,所有节点的属性名称类型值