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;
    }
    
  • 相关阅读:
    javascript学习笔记-数据类型
    chrome console.log API
    Mysql下SELECT的结果集作为UPDATE的WHERE条件时的SQL语法
    Ajax、Comet、Websocket、SSE
    Model View Controller(MVC) in PHP
    区别Transform、Transition、Animation
    WAI-ARIA无障碍网页应用属性完全展示
    理解 PHP output buffer
    清除Jquery动画的队列
    git常用命令
  • 原文地址:https://www.cnblogs.com/stevensonson/p/7612201.html
Copyright © 2011-2022 走看看