题解 P1184 高手之在一起

Posted jelly123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 P1184 高手之在一起相关的知识,希望对你有一定的参考价值。

好!机会来了!

依评论区的要求,小金羊献上STLset<string>的题解。

当然不会告诉你map<string,bool>我根本不会用
所以,有什么内置的成员函数救救孩子???


还是先复习 or 预习一下set。

先给集合一个名字:

set<元素类型>qwq;

插入元素:

qwq.insert(元素);

查找元素:

qwq.find(元素);

如果元素没有找到,返回qwq.end(),是一个空的位置迭代器。

于是得出:
如何判断元素p是否存在于qwq中?

if (qwq.find(p)!=qwq.end())
{
    cout<<"Exist."<<endl;
}
else cout<<"Not found."<<endl;

以上是这个题的数据结构STL内置成员函数方面。


然后讨论一下这个题的操作。

这个题很明显卡的就是Windows VistaXP200378.110!!!
因为题目测试点下载以后会发现多了一个13号字符‘ ‘(空格)......
然后我们读入数据就必须特判char(13)
然后每一个地方还不一定不含有空格,所以必须getline
边读入要匹配的字符串,然后判断是否存在,存在即ans++


说的还是挺明白的吧......
星,上代码:

#include <iostream>
#include <cstdio>
#include <string>
#include <set>

using namespace std;

int main()
{
    string input;
    set<string>qwq;
    int n,m,ans=0;
    scanf("%d%d",&n,&m);
    getline(cin,input);
    for (register int i=1;i<=n;i++)
    {
        getline(cin,input);
        if (input[input.size()-1]!=(char)13)
            input=input+char(13);
        qwq.insert(input);
    }
    for (register int i=1;i<=m;i++)
    {
        getline(cin,input);
        if (input[input.size()-1]!=(char)13)
            input=input+char(13);
        if (qwq.find(input)!=qwq.end())ans++;
    }
    cout<<ans;
    return 0;
}

瞎举报前提交记录自己查询:Jelly_Goat
感谢阅读!

以上是关于题解 P1184 高手之在一起的主要内容,如果未能解决你的问题,请参考以下文章

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

一起学习Redis之在Java中使用

选择片段 A 时如何在 ViewPager 上不一起启动所有片段

ADF之在代码中调用PLSQL中的PKG

git之在eclipse上玩

Vmware vSphere 6.0之在一台服务器上安装Platform与vCenter Server