代码如下:

#include <iostream>
#include <vector>
using namespace std;
const int N = 10005;struct node {char name[35];
};unsigned int BKDRHash(char *str) {unsigned int key = 0, seed = 31;while (*str) {key = key * seed + (*str++);}return key & 0x7fffffff;
}vector<node>List[N];//这里要为N,因为%N,所以要N,开小的话程序就会出问题。
//List的作用:把冲突的hash值存起来
int main() {int n, key ;cin >> n;node t;for (int i = 1; i <= n; i++) {cin >> t.name;key = BKDRHash(t.name) % N;//计算hash值,并求余List[key].push_back(t);}int cnt;cin >> cnt;//查询次数while (cnt--) {bool flag = false;char s[35];cin >> s;key = BKDRHash(s) % N;for (int i = 0; i < List[key].size(); i++) {if (strcmp(List[key][i].name, s) == 0) {cout << "yes" << endl;flag = true;break;}}if (!flag)cout << "no" << endl;}return 0;
}

字符串哈希-BKDRHash相关推荐

  1. 字符串哈希(BKDR_Hash)

    字符串哈希(BKDR_Hash)   BKDR_Hash函数把一个任意长度的字符串映射成一个非负整数,并且其冲突 [ 1 ] ^{[1]} [1]概率几乎为零.   取一固定值 P P P,把字符串看 ...

  2. 字符串哈希算法简单入门学习

    字符串哈希算法 字符串哈希,最著名的就是BKDRHash,也就是将字符串变成数值,并且最后变成的数值是一个P进制的数(一班取131或者13331),一般来说P最好为素数.然后我们之所以需要前缀和,是因 ...

  3. ELFhash - 优秀的字符串哈希算法

    原 ELFhash - 优秀的字符串哈希算法 分类:算法杂论算法精讲数据结构 (1424)  (2) 1.字符串哈希: 我们先从字符串哈希说起 在很多的情况下,我们有可能会获得大量的字符串,每个字符串 ...

  4. 【CodeForces】961 F. k-substrings 字符串哈希+二分

    [题目]F. k-substrings [题意]给定长度为n的串S,对于S的每个k-子串$s_ks_{k+1}...s_{n-k+1},k\in[1,\left \lceil \frac{n}{2} ...

  5. 138. 兔子与兔子【字符串哈希】

    很基础的字符串哈希 #include<bits/stdc++.h> using namespace std; typedef unsigned long long int ull; con ...

  6. Singing Superstar 字符串哈希-map操作

    题意 : 给一长度 < 1e5 的字符串s,q < 1e5次询问,每次问一个长 < 30 的串 t 在s中出现的次数,且t不可重叠. 例 : "abababa"中 ...

  7. 中石油训练赛 - DNA(字符串哈希)

    题目链接:点击查看 题目大意:给出一串只由A,C,G,T组成的字符串,再给出一个数字k,问每个长度为k的连续子串,出现的次数最多是多少次 题目分析:O(n)哈希一下,O(n)更新一下用无序map维护的 ...

  8. HDU - 3613 Best Reward(字符串哈希)

    题目链接:点击查看 题目大意:给出一个字符串,每个字母都有一个贡献值,现在要将这个字符串拆成两个子串,如果子串是回文串的话,贡献就是其中每个字母的贡献和,现在问贡献最大为多少 题目分析:很简单的一道回 ...

  9. 怎么把字符串变成数组_字符串哈希:从零开始的十分钟包会教程

    大家吼啊!这是我下定决心写专栏以来的第二篇文章,请大家多多资瓷!!同样我们先以上次的话起头吧! 恭喜你找到了这篇博客!虽然这个标题看起来非常像是nc营销号的标题但是!请相信我一次这是真的!如果不行请随 ...

最新文章

  1. 吸引子矩阵和鞍点矩阵可以用神经网络二分类吗?
  2. CentOS 6.0安装ipvsadm 1.26错误笔录
  3. 用C++流成员函数put输出单个字符
  4. Java基础难点补充
  5. 成就富翁:赚钱八大定律!
  6. 将指定 Word 的页眉页脚复制到其他文件中
  7. LINE电脑PC无限多开助手,LINE电脑多开器
  8. 实验:配置Trunk
  9. java以及JavaScript的香港身份证验证方法。
  10. 1526 B. I Hate 1111
  11. UVALIVE 2678
  12. Oracle数据仓库参考架构
  13. 男人到中年,活得不如一条狗
  14. 打造国内专业企业研发管理解决方案,ONES完成华创资本领投A+轮600万美元融资
  15. SAP财务记账中的贸易伙伴Trading Partner简析
  16. ADB调试删除手机内置应用
  17. 后端的一个刚毕业的小伙子老早完成了架构和服务端逻辑,接口洋洋洒洒列了出来。。。...
  18. 计算机网络与嵌入式系统,嵌入式系统与计算机系统有什么不同
  19. 华硕计算机用户名默认,华硕路由器设置方法_华硕(ASUS)路由器怎么设置?-192路由网...
  20. ChatGPT微信小程序

热门文章

  1. 【经典回放】多种语言系列数据结构算法:队列(C版)
  2. ArcGIS实验教程——实验六:空间数据格式转换
  3. Visual Studio与C#编程十个实用技巧
  4. C和指针之数组编程练习5 (矩阵相乘)
  5. Android之用sharedUserId来实现不同应用(APK)数据共享
  6. stringcstdlibctimecstdargctimectypecmathclimits
  7. Android之Android Studio 快捷键整理分享
  8. ubuntu下amd超频工具_Ubuntu16.04 版预装AMD GPU驱动【最新版】_Linux_Ubuntu-云市场-阿里云...
  9. android中文离线api_比林肯法球Linken sphere浏览器更多更新指纹的国产防关联软件-VMLogin中文版浏览器...
  10. html使用element ui_Kendo UI for jQuery使用教程:自定义小部件(二)