zoukankan      html  css  js  c++  java
  • map

    输入格式
    第一行,两个数 N,Q。表示有 N 个字符串和 Q 个询问。接下
    来 N 行,每行一个字符串。每个字符串只包括数字和字母,区分大
    小写。
    再接下来 Q 行,每行一个字符串,表示此字符串是否出现在之
    前的字符串中(需整个存在,即两字符串完全匹配),存在输出
    “ Yes” ,不存在输出“ No”
    输出格式
    Q 行,每行一个 Yes 或 No
    数据范围
    60%:1<=N<=3,000;1<=Q<=5,000
    100%:1<=N<=50,000;1<=Q<=5,000,000;1<=length_i<=30

    这道题目有多重做法,可以用hash,今天介绍map的做法。

    Map是STL[1] 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。——百度

    用map就可以存储字符串,并映射关系。

    map.begin()——返回map中第一个元素的迭代器
    map.end()——返回map中最后一个元素的迭代器
    map.size()——返回map中元素的个数
    map.count(element)——若map中有元素element,返回1,否则返回0
    map.clear——清空map
    map.lower_bound()——返回值大于给定元素的第一个位置

    此题用map,就可以存储每一个字符串
    code:

    #include<iostream>
    #include<cstdio>
    #include<map>
    #include<string>
    using namespace std;
    int i,j,k,n,m,tot,ans,q;
    map<string,int> ma;
    int main()
    {
        cin>>n>>q;
        for(int i=1;i<=n;i++){
            string s;
            cin>>s;ma[s]=1;
        }
        for(int i=1;i<=q;i++){
            string s;
            cin>>s;
            if(ma.count(s))/*这里也可以写为 if(ma[s])*/ printf("Yes
    ");
            else printf("N0
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    maven项目中各文件都没有报错,但是项目名称有红叉
    executeFind()方法和execute()方法区别
    数据库查询
    getHibernateTemplate出现的所有find方法的总结
    HQL和SQL的区别
    Java创建对象的方式
    xml中的<![CDATA[]]>和转义字符
    DWRUtil.addOptions
    dwr
    response.setHeader("Cache-Control","no-cache");的作用
  • 原文地址:https://www.cnblogs.com/stevensonson/p/7612201.html
Copyright © 2011-2022 走看看