PAT 1078. Hashing (模拟)
来源:互联网 发布:php调用nodejs接口 编辑:程序博客网 时间:2024/05/17 01:03
模拟hash表的插入,采用quadratic probing的冲突解决办法。
其中num为输入的数,每次的key = (num + i * i) % num;
注意到,这里的公式和点击打开链接中的却不同... 哪有准确的定义呢
for (int i = 0; i <= m-1; ++ i){key = (num + i * i) % m;if (table[key] == false){find = true;table[key] = true;break;}}
一直错在素数的判断上,我不知道为什么将下面的 "i<=num/2" 改为 "i <= ceil(sqrt(num)-0.000001)"就没发通过测试点1. 知道的朋友指教一下,谢。
bool is_prime(int num){ if (num < 2) { return false; } for (int i = 2; i <= num / 2; ++ i) { if (num % i == 0) { return false; } } return true;}
代码:
#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <set>using namespace std;bool is_prime(int num){ if (num < 2) { return false; } for (int i = 2; i <= num / 2; ++ i) { if (num % i == 0) { return false; } } return true;}int get_closest_prime(int m){ for (int i = m; ; ++ i) { if (is_prime(i)) { return i; } }}int main(){ int n, m, num, key; bool table[10010], first = true; memset(table, 0, sizeof(table)); scanf("%d%d", &m, &n); m = get_closest_prime(m); for (int i = 0; i < n; ++ i) { bool find = false; scanf("%d", &num); for (int i = 0; i <= m-1; ++ i) { key = (num + i * i) % m; if (table[key] == false) { find = true; table[key] = true; break; } } if (find == true) { if (first) { printf("%d", key); first = false; } else { printf(" %d", key); } } else { if (first) { printf("-"); first = false; } else { printf(" -"); } } } return 0;}
0 0
- PAT 1078. Hashing (模拟)
- pat 1078. Hashing (哈希表模拟)
- PAT 1078. Hashing (25)
- pat 1078. Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (25)
- PAT 1078. Hashing (25)
- 【PAT】1078. Hashing (25)
- 1078. Hashing (25) PAT
- pat 1078. Hashing (25)
- PAT-A 1078. Hashing
- PAT 1078. Hashing (25)
- PAT 1078. Hashing
- 【PAT】1078. Hashing
- PAT 1078.Hashing (25)
- JAVA反射机制
- android 获取图片的亮度
- NYOJ--Tree
- Linux Centos下软件的安装与卸载方法
- Build Library By xcodebuild
- PAT 1078. Hashing (模拟)
- gdb常用命令
- 如何有效避免内存泄露
- 电脑分区丢失数据如何恢复
- Socket 关于设置Socket连接超时时间
- 二分图完美匹配模板
- CCAssert的作用
- 第八周 项目1.3 定义不同的友元函数实现数学上的交换律 从而实现复数类中的运算符重载
- XML DOM节点