PTA 11-散列2 Hashing
来源:互联网 发布:长阳淘宝客服 编辑:程序博客网 时间:2024/05/21 17:58
http://pta.patest.cn/pta/test/18/exam/4/question/641
#include<vector>#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<cstdlib>#include<queue>#include<map>using namespace std;#define MAXSIZE 50001#define MAXTABLESIZE 50000int Size=0;int NextPrime(int N){ if(N==1||N==0) return 2; if(N==2||N==3) return N; //²âÊÔ¶þ int i,p=(N%2)?N:N+1; while(p<=MAXTABLESIZE) { for(i=(int)sqrt(p);i>2;i--) if(!(p%i)) break; if(i==2) break; else p+=2; } return p;}int Hash(int key,int p){ return key%p;}void Insert(int h[],int key,int n){ int m,p=Hash(key,n); m=p; int s=n; int t=0; if(h[p]) { t=0 ; for(t=1;t<n;t++) { p=(m+t*t)%n; if(h[p]==0) break; } } if(t<s) { if(Size==0) printf("%d",p); else printf(" %d",p); h[p]=key; Size++; } else { if(Size==0) printf("-"); else printf(" -"); }}int main(){ int n,i,t,m; int key;int h[MAXSIZE];int a[MAXSIZE];int p[MAXSIZE]; scanf("%d%d",&n,&m); n=NextPrime(n); for(i=0;i<n;i++) h[i]=0; for(i=0;i<m;i++) scanf("%d",&a[i]); for(i=0;i<m;i++) Insert(h,a[i],n);printf("\n"); return 0;}
0 0
- PTA 11-散列2 Hashing
- PTA 11-散列2 Hashing (25分)
- PTA—11-散列4 Hashing
- 11-散列2 Hashing
- PTA—11-散列4 Hashing - Hard Version (30分)
- 散列2 Hashing
- 11-散列2 Hashing (25分)
- 11-散列2 Hashing (25分)
- 11-散列2 Hashing (25分)
- 11-散列2 Hashing (25分)
- 11-散列4 Hashing
- 11-散列4 Hashing - Hard Version
- 11-散列4 Hashing
- 散列 (Hashing)
- 散列(hashing)
- 数据结构:散列(hashing)
- 散列-PAT.A1078 Hashing
- 11-散列2 Hashing (25分)
- 大话设计模式读后感-工厂模式
- sql cte 递归用法
- 机器学习中overfitting的理解
- 如何构建一个死锁?
- Android获取TextView的长度
- PTA 11-散列2 Hashing
- 微信公众号通讯录同步
- week10---11月13日 JS基础(五)
- DIY 二叉树的先序非递归遍历
- maven+springMVC+mybatis+junit详细搭建过程
- ——黑马程序员——OC中简单单列模式的实现
- 用SQL语句写某一月份的日历
- Android 动态添加view
- java.lang.NoSuchFieldError: INSTANCE