1078 Hashing (25 分)【难度: 一般 / 知识点: 哈希表二次探测法】
https://pintia.cn/problem-sets/994805342720868352/problems/994805389634158592
不得不说,读了半天的假题,以为就是直接判断可不可以插入就行了。
后来,发现是用只具有正增量的二次探测法来解决冲突。
不得不说,PAT的题还是很不错的,考的是一些数据结构方面的一些内功,不是偏竞赛的那种思维的。
考察的就是基本算法概念用算法来实现。
首先,先介绍一下二次探测法
关于二次探测法(处理冲突方法):pos=(key + i*i )%MSize
,其中i
为 1*1 , -1*1 , 2*2 , -2*2 , ··· k*k , -k*k (k <= MSize-1)
题目说的是只具有正增量的二次探测法故pos=(key + i*i )%MSize
,其中i
为 1*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 分)【难度: 一般 / 知识点: 哈希表二次探测法】相关推荐
- 1071 Speech Patterns (25 分)【难度: 简单 / 知识点: 哈希表 字符串】
https://pintia.cn/problem-sets/994805342720868352/problems/994805398257647616 将不合法的字符都弄成空格符,然后用strin ...
- 1020 Tree Traversals (25 分) 【难度: 中 / 知识点: 哈希表建树 遍历树】
https://pintia.cn/problem-sets/994805342720868352/problems/994805485033603072 第一步: 建树 第二步: 遍历树 #incl ...
- 1022 Digital Library (30 分) 【难度: 中 / 知识点: 哈希表】
https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 解析: 将每一部分都用哈希表映射.映射的结果 ...
- 1078. Hashing (25)-PAT甲级真题
1078. Hashing (25) The task of this problem is simple: insert a sequence of distinct positive intege ...
- PAT (Advanced Level) 1078. Hashing (25)
二次探测法.表示第一次听说这东西... #include<cstdio> #include<cstring> #include<cmath> #include< ...
- 1066 Root of AVL Tree (25 分)【难 / 知识点: 平衡树 未完成】
https://pintia.cn/problem-sets/994805342720868352/problems/994805404939173888 平衡树之前学过,不过有忘完了,有时间补吧
- 1034 Head of a Gang (30 分) 【难度: 中 / 知识点: 并查集】
https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624 首先不难想到的是并查集,不过这里有一个关键的 ...
- 【PAT乙】1080 MOOC期终成绩 (25分)
problem 1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习"数据结构"课程的学生,想要获得一张合格 ...
- PTA 1015 德才论 (25分) ,满分代码 + 测试点报错解决
知识点 构造sort的排序函数时,string类型可直接比较大小 面对函数的栈器存储空间有限,当出现栈溢出问题时,可将变量命名为全局变量. 测试点2.3.4错误的原因,第一次误以为是由于数据过大,导致 ...
最新文章
- c++学习笔记之友元函数
- 神经网络与深度学习笔记
- 如何实现点击微信内置浏览器返回按钮,返回指定页面,或者原地刷新
- 论优秀的码农,学会这5点!
- 打擦边球,涨粉1700万!中国最“不正经”的官媒,比杜蕾斯还会玩
- linux 编译 连接失败,编译linux-3.15.5时遇到的几个错误
- 端口占用问题解决办法(以1099端口为例)
- python决策树分类wine_Python写算法:二元决策树
- PDF 报告生成器:用 reportlab 和 pdfrw 生成自定义 PDF 报告
- html 菜鸟驿站,菜鸟驿站
- c语言处理系统步骤,c语言源代码【处理步骤】
- 雅思备考-口语词组积累-第一章
- 华三服务器启用cpu虚拟化,启动BIOS的虚拟化设置方法|开启CPU虚拟化支持
- android qq音乐无法连接网络连接,qq音乐不能播放_qq音乐为什么老是提示说歌曲无效或网络连接失败呢?...
- 频率f,角频率Ω和数字频率w的物理含义
- NOIP2020总结
- Java 公历转农历,然后农历减一年(或者几天或者任意天),再把这个日期转成公历
- 祛湿不能迷信红豆薏米水!
- WinRAR(去广告)中文繁体
- 2018年 中南大学研究生复试机试题(1025~ 1028)