zoukankan      html  css  js  c++  java
  • 题解 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
    感谢阅读!

  • 相关阅读:
    并查集图冲突hdu1272
    CentOS 7通过yum安装fcitx五笔输入法
    近期的技术问题让云供应商进行预设加密
    POJ 1166 The Clocks (暴搜)
    windows中的mysql修改管理员密码
    Visio画UML类图、序列图 for Java
    js中的时间与毫秒数互相转换
    java.lang.OutOfMemoryError: unable to create new native thread 居然是MQ问题
    WEB移动应用框架构想(转载)
    Android SDK安装教程
  • 原文地址:https://www.cnblogs.com/jelly123/p/10452926.html
Copyright © 2011-2022 走看看