题目链接
题目背景
高手是可以复活的,这点我们大家都知道。
题目描述
高手列出了一个详尽的日程表,这次他要追求的则是一个心灵纯洁的小萝莉。他和她都是要上课的,但是也会有时间空闲,于是高手决定无时无刻都要跟着她。为了她,高手决定转学到一年级。现在高手已经花重金买下了她的日程表,每一天都会有她的行踪。现在列出了高手方便去的地方,以及不方便去的地方。其中方便去的地方可以去无限次,不方便去的地方不能去,一共有 n 个方便去的地点, m 天。高手想知道他在这 m 天中,最多能和她在一起多久。不方便去的地方是不会列出的。
输入格式
第一行两个整数 n,m。
接下来 n 行,每行一个地名,高手方便去的地方。
接下来 m 行,每行一个地名,她这一天在的地方。
地名中可能有空格。
输出格式
一个整数,他们在同一个地方的天数。
输入输出样例
输入 #1
1
2
WC
CLASS
WC
输出 #1
1
说明/提示
1≤m≤1000000,1≤n≤20。
代码:
#include<bits/stdc++.h>
using namespace std;
map<string,int> m;//建立一个以string为关键词,int为其对应值的map
int s,n,k;
string st;
int main()
{
std::ios::sync_with_stdio(false);//关闭同步,增加cin,cout的速度
cin>>n>>k;
getline(cin,st);//清理冗余(就是换行)
for (int i=1;i<=n;i++)
{
getline(cin,st);//因为有空格,所以整行读入
m[st]++;//标记
}
for (int i=1;i<=k;i++)
{
getline(cin,st);
if (m.count(st)==1)//判断是否存在
s++;//计数加一
}
cout<<s<<endl;
return 0;
}