zoukankan      html  css  js  c++  java
  • codevs2875RY哥查字典

    题目链接:http://codevs.cn/problem/2875/

    题目描述 Description

        RY哥最近新买了一本字典,他十分高兴,因为这上面的单词都十分的和谐,他天天查字典。

    输入描述 Input Description

    1个整数N,表示字典里面的单词数量。

    接下来N行,每行一个字符串,表示一个单词。

    然后第N+2行,一个整数M,表示要查的单词数。

    接下来M行,每行一个字符串,表示一个要查的单词。

    输出描述 Output Description

    对于每一个要查的单词,如果在字典里面,就输出’Yes’,否则输出’No’,一行一个。

    样例输入 Sample Input

    2

    i

    you

    1

    love

    样例输出 Sample Output

    No

    数据范围及提示 Data Size & Hint

    1<N<10000

    1<M<100

    每个单词的长度[1..100]

    保证都是小写字母。

    题解

    hash题,只要强行模拟即可。

    #include<cstdio>
    #include <cstring>
    #define mod 1000007
    using namespace std;
    int i,j,k,n,m,x,y,t;
    bool mp[1000007];
    char s[5001];
    int gethash(char s[]){
        int key=0;
        for (int i=0;i<strlen(s);i++)key=(key*29+s[i])%mod;
        return (key%mod);
    }
    int main(){
        scanf("%d
    ",&n);
        for (i=1;i<=n;i++){gets(s);mp[gethash(s)]=1;}
        scanf("%d
    ",&m);
        for (i=1;i<=m;i++){
            gets(s);
            if (mp[gethash(s)]) printf("Yes
    ");else printf("No
    ");
        }
    }

    stl乱搞也行。。

    #include <map>
    #include<cstdio>
    #include <string>
    #include <cstring>
    #include <iostream>
    #define mod 1000007
    using namespace std;
    int i,j,k,n,m,x,y,t;
    bool mp[1000007];
    string s;
    map<string,int>Map;
    int main(){
        scanf("%d
    ",&n);
        for (i=1;i<=n;i++){cin>>s;Map[s]=1;}
        scanf("%d
    ",&m);
        for (i=1;i<=m;i++){
            cin>>s;
            if (Map[s]) printf("Yes
    ");else printf("No
    ");
        }
    }
  • 相关阅读:
    玩转渗透神器Kali:Kali Linux作为主系统使用的正确姿势TIPS
    知道创宇研发技能表v2.2
    我对什么都感兴趣,可我迷茫了(转载)
    防御性编程
    防御性编程技巧
    移动安全技术如何未雨绸缪?
    1054. 求平均值 (20)
    1053. 住房空置率 (20)
    1052. 卖个萌 (20)
    1051. 复数乘法 (15)
  • 原文地址:https://www.cnblogs.com/Acheing/p/6786436.html
Copyright © 2011-2022 走看看