【题意】
给定一些单词对应的单词,询问单词对应的单词
【输入】
先给定对应关系,两个单词A、B,中间用一个空格分隔
表示B对应的单词为A
然后一个空行分隔
接下来每行表示询问一个单词对应的单词
单词是100000级的,询问也是,单词长度不超过10
【输出】
对于每个询问输出对应的单词,若不存在对应的单词输出'eh'
trie树运用
program poj2503; var tot,i,j,k:longint; p,s:string; trie:array [0..1000001,'a'..'z'] of longint; point:array [0..1000001] of string[10]; procedure insert (s,p:string); var i,k:longint; begin k:=0; for i:=1 to length(s) do begin if trie[k,s[i]]=0 then begin inc(tot); trie[k,s[i]]:=tot; point[trie[k,s[i]]]:='eh'; end; k:=trie[k,s[i]]; end; point[k]:=p; end; function find (s:string):longint; var i,k:longint; begin k:=0; for i:=1 to length(s) do begin if trie[k,s[i]]=0 then exit(0); k:=trie[k,s[i]]; end; exit(k); end; begin tot:=0; repeat readln(s); if s='' then break; p:=copy(s,pos(' ',s)+1,length(s)-pos(' ',s)); delete(s,pos(' ',s),length(s)-pos(' ',s)+1); insert(p,s); until false; point[0]:='eh'; while not seekeof do begin readln(s); writeln(point[find(s)]); end; end.