题目
题目描述
图书管理是一件十分繁杂的工作,图书馆每天都会有许多新书缴入,为了更方便管理图书(以便于帮助想要结束的客人快速查找是否有他们所需要的书),我们需要设计一个图书朝着系统,该系统需要支持两种操作:
1)add(s),表示新加入一本书名为s的图书;
2)find(s),表示查询是否存在一本书名为s的图书;
输入
第一行包括一个正整数n(n≤30000),表示操作数。
以下n行,每行所给出两个操作中的一种,指令格式为:
add s
find s
在书名s与指令间有一个空格,保证书名长度都不超过200,可以加上读入数据是准确无误的。
输出
对于每个find指令,对应输出一行yes或no,表示该书是否存在。注意:开始时图书馆没有一本书,另外书名区分大小写。
样例输入
4
add InsideC#
find EffectiveJava
add EffectiveJava
find EffectiveJava
样例输出
no
yes
分析
插入和寻找字符串->Hash
再多开一维记录编号即可。
代码
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define full(a,b) memset(a,b,sizeof a)
#define ll long long
#define ui unsigned int
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9') f=ch=='-'?-1: