• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

洛谷P1184 高手之在一起

互联网 diligentman 7天前 7次浏览

题目链接

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

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


程序员灯塔
转载请注明原文链接:洛谷P1184 高手之在一起
喜欢 (0)