ZZ买衣服
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 937 Solved: 126
Description
ZZ是ACM队的漂亮MM,虽然是一个屌丝ACMer,但是还是有一颗爱美的心。ZZ像所有的女孩子一样,喜欢买各种衣服,可是ZZ有个特别的习惯,就是不买同一个品牌的衣服,可是品牌那么多,怎么辨别哪些买过,哪些没有买过呢?这可难倒了ZZ,同作为ACMer的你,来帮帮ZZ吧!至今为止ZZ已经买过N个品牌的衣服,接下来还要一次一次的买M个品牌的衣服,请你告诉她,哪些能买哪些不能买吧!
Input
题目有多组测试数据,每组测试数据首先输入N和M,(0<=n,m<=100000)随后输入N个品牌,表示N个已经买过的品牌,紧跟着又有M个品牌,表示将要买的M个品牌。(品牌只由小写字母组成,长度不超过20)
Output
对于M个要买的品牌,如果能买,输出YES,否则输出NO,每个输出占一行。
Sample Input
Sample Output
这个题目用到了头文件#include<map>和#include<set>,是容器的头文件。
关于容器map和set的用法可以 点击 map 和 set。
以下代码来源于沐阳的博客。
Problem A_set
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <algorithm>
#include <set>
using namespace std;
int N, M;
set<string>st; //命名st为容器set格式,其关键字(key)为字符串类型。
int main() {
char str[100];
while (scanf("%d %d", &N, &M) != EOF) {
st.clear(); //初始化容器(删除所有元素)
for (int i = 0; i < N; ++i) {
scanf("%s", str);
st.insert(str); //添加数据到容器中
}
for (int i = 0; i < M; ++i) {
scanf("%s", str);
if (st.count(str)) { //count()是返回字符串str出现的次数
puts("NO");
} else {
st.insert(str);
puts("YES");
}
}
}
return 0;
}