zoukankan      html  css  js  c++  java
  • 洛谷 P2580 于是他错误的点名开始了

    题目背景

    XS中学化学竞赛组教练是一个酷爱炉石的人。

    他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900)。

    题目描述

    这之后校长任命你为特派探员,每天记录他的点名。校长会提供化学竞赛学生的人数和名单,而你需要告诉校长他有没有点错名。(为什么不直接不让他玩炉石。)

    输入输出格式

    输入格式:

    第一行一个整数 n,表示班上人数。接下来 n 行,每行一个字符串表示其名字(互不相同,且只含小写字母,长度不超过 50)。第 n+2 行一个整数 m,表示教练报的名字。接下来 m 行,每行一个字符串表示教练报的名字(只含小写字母,且长度不超过 50)。

    输出格式:

    对于每个教练报的名字,输出一行。如果该名字正确且是第一次出现,输出“OK”,如果该名字错误,输出“WRONG”,如果该名字正确但不是第一次出现,输出“REPEAT”。(均不加引号)

    输入输出样例

    输入样例#1:
    5  
    a
    b
    c
    ad
    acd
    3
    a
    a
    e
    
    输出样例#1:
    OK
    REPEAT
    WRONG
    

    说明

    对于 40%的数据,n≤1000,m≤2000;

    对于 70%的数据,n≤10000,m≤20000;

    对于 100%的数据, n≤10000,m≤100000。

    T1总是送分的。

    trie树

    插入名字 维护是否查询过

    屠龙宝刀点击就送

    #include <cstring>
    #include <cstdio>
    
    struct node
    {
        int Count;
        node * next[27];
    }*root;
    node * create_cn()
    {
        node *tp=new node;
        memset(tp->next,0,sizeof(tp->next));
        tp->Count=0;
        return tp;
    }
    int n;
    void insert(char *word)
    {
        node *p=root;
        char *q=word;
        while(*q)
        {
            int id=*q-'a';
            if(p->next[id]==0)
                p->next[id]=create_cn();
            p=p->next[id];
            ++q;
        }
    }
    int search(char *word)
    {
        node *p=root;
        char *q=word;
        while(*q)
        {
            int id=*q-'a';
            p=p->next[id];
            q++;
            if(p==NULL) return 0;
        }
        p->Count++;
        return p->Count;
    }
    int main()
    {
        root=create_cn();
        scanf("%d",&n);
        char name[55];
        for(;n--;)
        {
            scanf("%s",name);
            insert(name);
        }
        scanf("%d",&n);
        for(;n--;)
        {
            scanf("%s",name);
            int k=0;
            k=search(name);
            if(!k) printf("WRONG
    ");
            else if(k==1) printf("OK
    ");
            else printf("REPEAT
    ");
        }
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    无废话MVC入门教程五[Control与View交互]
    无废话MVC入门教程三[路由设置及视图入门]
    无废话MVC入门教程二[第一个小Demo]
    IDEA 插件开发
    慢慢学Linux驱动开发,第十章,GNU C的扩展
    《UNIX环境高级编程》编译问题彻底解决方案
    GNU make笔记
    outlook2003无法显示地址列表 无法打开与该地址列表的相关"联系人"文件夹解决方案
    慢慢学Linux驱动开发,第十二章,加入内核
    ADS: (Fatal)L6002U:Could not open file:..... & L6002
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6759201.html
Copyright © 2011-2022 走看看