PTA 7-17(查找) 字符串关键字的散列映射(25 分) 25分代码
来源:互联网 发布:手机p2p软件下载 编辑:程序博客网 时间:2024/06/05 04:19
需要注意的就是冲突的处理那部分,数据结构课本上的知识,运用 平方探测法解决
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<set>#include<map>using namespace std;const int maxn = 1000000 + 7, INF = 0x7f7f7f7f, mod = 1e9+7;int n, m;string s;// t;map<string, int> mp;bool vis[maxn] = {false};int main() { scanf("%d %d", &n, &m); for(int i = 1; i <= n; ++i) { cin >> s; int len = s.size(); int num = 0; if(len == 1) { num += (s[0]-'A'); } else if(len == 2) { num = 32*(s[0]-'A') + (s[1]-'A'); } else { for(int j = 3; j >= 1; --j) { int pos = len - j; num = num * 32 + s[pos] - 'A'; } } num %= m; if(mp[s] == 0 && vis[num]) { for(int t = 1; t < maxn; ++t) { if(!vis[(num+t*t)%m]) { num = (num+t*t)%m; vis[num] = true; mp[s] = num; cout << num; break; } else if(!vis[(num-t*t+m)%m]) { num = (num-t*t+m)%m; vis[num] = true; mp[s] = num; cout << num; break; } } } else { num %= m; mp[s] = num; cout << num; vis[num] = true; } if(i < n) cout << " "; else cout << endl; } return 0;}
阅读全文
1 0
- PTA 7-17(查找) 字符串关键字的散列映射(25 分) 25分代码
- 字符串关键字的散列映射(25 分)
- PTA-数据结构 5-42 整型关键字的散列映射 (25分)
- 5-43 字符串关键字的散列映射 (25分)
- 5-43 字符串关键字的散列映射 (25分)
- PTA 7-17 字符串关键字的散列映射
- 5-42 整型关键字的散列映射 (25分)
- PTA 7-1 树的同构(25 分)25分代码 结构体保存结点
- PTA 7-15(查找) 航空公司VIP客户查询(25 分) 25分代码 哈希方法
- PTA 7-7(排序) Windows消息队列(25 分) 25分代码 优先队列
- PTA 7-7(排序) Windows消息队列(25 分) 25分代码 优先队列
- PTA 7-10(图) 旅游规划(25 分) 25分代码
- PTA 7-21(排序) PAT排名汇总(25 分)25分代码
- PTA 7-20(排序) 奥运排行榜(25 分) 25分代码 结构体排序
- PTA 7-22(排序) 模拟EXCEL排序(25 分) 25分代码
- PTA 7-19(排序) 寻找大富翁(25 分) 25分代码
- PTA 7-3(队列) 银行业务队列简单模拟(25 分) 25分代码
- PTA 7-2 列车调度(25 分) 25分代码
- 并查集的启发式合并
- Scala 强大的集合数据操作示例
- json_list
- 利用代理IP爬取网页的小心得
- C++ 任意进制转换为十进制,十进制转换为任意进制
- PTA 7-17(查找) 字符串关键字的散列映射(25 分) 25分代码
- TensorFlow中实现minst代码
- 编译原理 (预处理>编译>汇编>链接)
- HDU-5534-Partial Tree
- 【编译DLL动态库】使用VS2013编译C语言动态链接库
- BGGP工程组成
- 更新 yum 源
- Mysql分区表使用的一些限制和需要注意的地方
- 「NOIP2012」国王游戏