题目背景
高手是可以复活的,这点我们大家都知道。
题目描述
高手列出了一个详尽的日程表,这次他要追求的则是一个心灵纯洁的小萝莉。他和她都是要上课的,但是也会有时间空闲,于是高手决定无时无刻都要跟着她。为了她,高手决定转学到一年级。现在高手已经花重金买下了她的日程表,每一天都会有她的行踪。现在列出了高手方便去的地方,以及不方便去的地方。其中方便去的地方可以去无限次,不方便去的地方不能去,一共有nn个方便去的地点,mm天。高手想知道他在这mm天中,最多能和她在一起多久。不方便去的地方是不会列出的。
输入输出格式
输入格式:
第一行n,mn,m。
接下来nn行,每行一个地名,高手方便去的地方。
接下来mm行,每行一个地名,她这一天在的地方。
输出格式:
一个整数,他们在同一个地方的天数。
输入输出样例
输入样例#1:
1
2
WC
CLASS
WC
输出样例#1:
1
说明
1≤m≤10000001≤m≤1000000
1≤n≤201≤n≤20
这题让我受到无限的伤害
你马的!这个高手是情场高手吧!还有那个样例还TM的WC作者你的刀片记得签收啊!
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
#include<cstring>
using namespace std;
const int maxn=999999999;
const int minn=-999999999;
map<string,int>mp;
int n,m,ans;
inline int read() {
char c = getchar();
int x = 0, f = 1;
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int main() {
scanf("%d%d",&n,&m);
string s;
for(int i = 1; i <= n; i++) {
cin >> s;
string a;
while(getchar() == ' ') {
cin >> a;
s += a;
}
mp[s] = 1;
}
for(int i = 1; i <= m; i++) {
cin >> s;
string a;
while(getchar() == ' ') {
cin >> a;
s += a;
}
if(mp[s])
ans++;
}
cout<<ans;
return 0;
}