题目描述 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
YES
NO
题解:哈希裸题两个点过不了不知道为什么
const
p=100007;
var
h:array[0..p]of longint;
n,m,x,i:longint;
function hash(x:longint):longint;
var
i:longint;
begin
i:=x mod p;
while (h[i]<>x)and(h[i]<>0) do
begin
inc(i);
if i=p+1 then i:=0;
end;
hash:=i;
end;
procedure init;
var
i,x:longint;
begin
readln(n,m);
for i:=1 to n do
begin
read(x);
h[hash(x)]:=x;
end;
readln;
end;
begin
init;
for i:=1 to m do
begin
read(x);
if h[hash(x)]<>0 then writeln('YES') else writeln('NO');
end;
end.