题目背景

高手是可以复活的,这点我们大家都知道。

题目描述

高手列出了一个详尽的日程表,这次他要追求的则是一个心灵纯洁的小萝莉。他和她都是要上课的,但是也会有时间空闲,于是高手决定无时无刻都要跟着她。为了她,高手决定转学到一年级。现在高手已经花重金买下了她的日程表,每一天都会有她的行踪。现在列出了高手方便去的地方,以及不方便去的地方。其中方便去的地方可以去无限次,不方便去的地方不能去,一共有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

【map】p1184 高手之在一起-LMLPHP

这题让我受到无限的伤害

【map】p1184 高手之在一起-LMLPHP
你马的!这个高手是情场高手吧!还有那个样例还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;
}
05-02 06:18