【哈希表】CODEVS1230 元素查找

#include<cstdio>
#include<vector>
using namespace std;
typedef vector<int>::iterator VER;
#define MOD 100007
vector<int>v[MOD];
int n,m,t;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i)
	  {
	  	scanf("%d",&t);
	  	v[t%MOD].push_back(t);
	  }
	for(int i=1;i<=m;++i)
	  {
	  	scanf("%d",&t);
	  	int o=t%MOD;
	  	for(VER i=v[o].begin();i!=v[o].end();++i)
	  	  if(*i==t)
	  	    {
	  	      puts("YES");
	  	      goto OUT;
	  	    }
	  	puts("NO");
	  	OUT:;
	  }
	return 0;
}
时间: 2024-08-14 20:16:10

【哈希表】CODEVS1230 元素查找的相关文章

codevs1230元素查找(hash)

1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过. 输入描述 Input Description 第一行两个整数 n 和m. 第二行n个正整数(1<=n<= 100000) 第三行m个整数(1<=m<=100000) 输出描述 Output Description 一共m行,若出现则输出YES,否则输出NO

哈希表中的查找

基本概念 哈希表(hash table):又称散列表,其基本思路是,设要存储的元素个数是n,设置一个长度为m的连续存储单元,以每个元素的关键字作为自变量,通过哈希函数(h(k))把k映射到一个内存单元,并把该元素存在这个内存单元中,把像这样构造的线性表存储结构称为哈希表. 哈希冲突(hash collisions):在构建哈希表时,出现两个不同关键词对应相同的哈希值,这种现象称作哈希冲突. 装填因子(loading factor):设哈希表空间大小为n,填入表中元素个数为m,则$α=/frac{

codevs1230 元素查找

题目描述 Description 给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过. 输入描述 Input Description 第一行两个整数 n 和m. 第二行n个正整数(1<=n<= 100000) 第三行m个整数(1<=m<=100000) 输出描述 Output Description 一共m行,若出现则输出YES,否则输出NO 样例输入 Sample Input 4 2 2 1 3 4 1 9 样例输出 Sample Output

数据结构基础温故-6.查找(下):哈希表

哈希(散列)技术既是一种存储方法,也是一种查找方法.然而它与线性表.树.图等结构不同的是,前面几种结构,数据元素之间都存在某种逻辑关系,可以用连线图示表示出来,而哈希技术的记录之间不存在什么逻辑关系,它只与关键字有关联.因此,哈希主要是面向查找的存储结构.哈希技术最适合的求解问题是查找与给定值相等的记录. 一.基本概念及原理 1.1 哈希定义的引入 这里首先看一个场景:在大多数情况下,数组中的索引并不具有实际的意义,它仅仅表示一个元素在数组中的位置而已,当需要查找某个元素时,往往会使用有实际意义

SDUT 3377 数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1 Input 输入一组测试数据,数据的第1行给出两个正整数N(N <= 500)和P(P >=

(转载)查找三 哈希表的查找

查找三 哈希表的查找 目录 要点 哈希表和哈希函数 在记录的存储位置和它的关键字之间是建立一个确定的对应关系(映射函数),使每个关键字和一个存储位置能唯一对应.这个映射函数称为哈希函数,根据这个原则建立的表称为哈希表(Hash Table),也叫散列表. 以上描述,如果通过数学形式来描述就是: 若查找关键字为 key,则其值存放在 f(key) 的存储位置上.由此,不需比较便可直接取得所查记录. 注:哈希查找与线性表查找和树表查找最大的区别在于,不用数值比较. 冲突 若 key1 ≠ key2

查找三 哈希表的查找

要点 哈希表和哈希函数 在记录的存储位置和它的关键字之间是建立一个确定的对应关系(映射函数),使每个关键字和一个存储位置能唯一对应.这个映射函数称为哈希函数,根据这个原则建立的表称为哈希表(Hash Table),也叫散列表. 以上描述,如果通过数学形式来描述就是: 若查找关键字为 key,则其值存放在 f(key) 的存储位置上.由此,不需比较便可直接取得所查记录. 注:哈希查找与线性表查找和树表查找最大的区别在于,不用数值比较. 冲突 若 key1 ≠ key2 ,而 f(key1) = f

哈希表之四查找及分析

哈希表查找和哈希表的构造过程基本一致,见下图 哈希表插入和查询的例子(先省略) (1)哈希表虽然建立了关键字和记录的存储位置之间的映射关系,但是由于冲突,导致是一个多对一的映射, 所以,哈希表的查找效率是平均查找长度: (2)查找过程中徐鹤给定值进行比较的关键字的个数取决于三个因素:哈希函数,处理冲突的方法和装填因子 (3)一般情况下,处理冲突方法相同的哈希表,其平均查找长度依赖于哈希表的装填因子. 哈希表装填因子的定义: 表示哈希表的装填程度,越小,发生冲突的可能性就越小:反之越大,表示已填入

9. 蛤蟆的数据结构进阶九哈希表实现

9. 蛤蟆的数据结构进阶九哈希表实现 本篇名言:"人们所努力追求的庸俗的目标 --我总觉得都是可鄙的. -- 爱因思坦" 上篇我们看了哈希表的相关定义和概念,这篇来看下如何来实现. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47362781 1.  代码实现 1.1             Main 函数定义哈希元素数组 10个元素. 定义哈希表变量. 调用InitHashTable构造一个空的哈希表. 然后循