https://pintia.cn/problem-sets/994805342720868352/problems/994805389634158592
不得不说,读了半天的假题,以为就是直接判断可不可以插入就行了。
后来,发现是用只具有正增量的二次探测法来解决冲突。
不得不说,PAT的题还是很不错的,考的是一些数据结构方面的一些内功,不是偏竞赛的那种思维的。
考察的就是基本算法概念用算法来实现。
首先,先介绍一下二次探测法
关于二次探测法(处理冲突方法):pos=(key + i*i )%MSize,其中i1*1 , -1*1 , 2*2 , -2*2 , ··· k*k , -k*k (k <= MSize-1)
题目说的是只具有正增量的二次探测法故pos=(key + i*i )%MSize,其中i1*1 , 2*2 , ··· k*k (k <= MSize-1)

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
const int null=0x3f3f3f3f;
int hush[N],n,m;
int insert(int x)
{for(int i=0;i<m;i++){int pos=(x+i*i)%m;if(hush[pos]==null)//找到位置了{hush[pos]=x;return pos;}}return -1;
}
bool check(int x)
{if(x==1) return true;for(int i=2;i<=x/i;i++) if(x%i==0) return true;return false;
}
int main(void)
{memset(hush,0x3f,sizeof hush);cin>>m>>n;while(check(m)) m++;//求最小的质数for(int i=1;i<=n;i++){int x; cin>>x;int ans=insert(x);if(ans==-1) cout<<"-";else cout<<ans;if(i!=n) cout<<" ";}return 0;
}

1078 Hashing (25 分)【难度: 一般 / 知识点: 哈希表二次探测法】相关推荐

  1. 1071 Speech Patterns (25 分)【难度: 简单 / 知识点: 哈希表 字符串】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805398257647616 将不合法的字符都弄成空格符,然后用strin ...

  2. 1020 Tree Traversals (25 分) 【难度: 中 / 知识点: 哈希表建树 遍历树】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072 第一步: 建树 第二步: 遍历树 #incl ...

  3. 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 解析: 将每一部分都用哈希表映射.映射的结果 ...

  4. 1078. Hashing (25)-PAT甲级真题

    1078. Hashing (25) The task of this problem is simple: insert a sequence of distinct positive intege ...

  5. PAT (Advanced Level) 1078. Hashing (25)

    二次探测法.表示第一次听说这东西... #include<cstdio> #include<cstring> #include<cmath> #include< ...

  6. 1066 Root of AVL Tree (25 分)【难 / 知识点: 平衡树 未完成】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805404939173888 平衡树之前学过,不过有忘完了,有时间补吧

  7. 1034 Head of a Gang (30 分) 【难度: 中 / 知识点: 并查集】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624 首先不难想到的是并查集,不过这里有一个关键的 ...

  8. 【PAT乙】1080 MOOC期终成绩 (25分)

    problem 1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格 ...

  9. PTA 1015 德才论 (25分) ,满分代码 + 测试点报错解决

    知识点 构造sort的排序函数时,string类型可直接比较大小 面对函数的栈器存储空间有限,当出现栈溢出问题时,可将变量命名为全局变量. 测试点2.3.4错误的原因,第一次误以为是由于数据过大,导致 ...

最新文章

  1. c++学习笔记之友元函数
  2. 神经网络与深度学习笔记
  3. 如何实现点击微信内置浏览器返回按钮,返回指定页面,或者原地刷新
  4. 论优秀的码农,学会这5点!
  5. 打擦边球,涨粉1700万!中国最“不正经”的官媒,比杜蕾斯还会玩
  6. linux 编译 连接失败,编译linux-3.15.5时遇到的几个错误
  7. 端口占用问题解决办法(以1099端口为例)
  8. python决策树分类wine_Python写算法:二元决策树
  9. PDF 报告生成器:用 reportlab 和 pdfrw 生成自定义 PDF 报告
  10. html 菜鸟驿站,菜鸟驿站
  11. c语言处理系统步骤,c语言源代码【处理步骤】
  12. 雅思备考-口语词组积累-第一章
  13. 华三服务器启用cpu虚拟化,启动BIOS的虚拟化设置方法|开启CPU虚拟化支持
  14. android qq音乐无法连接网络连接,qq音乐不能播放_qq音乐为什么老是提示说歌曲无效或网络连接失败呢?...
  15. 频率f,角频率Ω和数字频率w的物理含义
  16. NOIP2020总结
  17. Java 公历转农历,然后农历减一年(或者几天或者任意天),再把这个日期转成公历
  18. 祛湿不能迷信红豆薏米水!
  19. WinRAR(去广告)中文繁体
  20. 2018年 中南大学研究生复试机试题(1025~ 1028)

热门文章

  1. utf-8 字符串转为Unicode编码格式
  2. CodeForces1082G Petya and Graph 最小割
  3. CentOs下搭建GitLab
  4. CentOS 安装MySQL rpm方式安装
  5. OpenSession与getCurrentSession的区别
  6. 性味归经与功能的脚本(超过四元素)
  7. ios app的真机调试与发布配置
  8. 60行代码俄罗斯方块
  9. ASP.NET2.0导航功能之配置会员和角色
  10. Ubuntu14.04设置PATH环境变量(一)