zoukankan      html  css  js  c++  java
  • 统计难题 HDU

    统计难题 HDU - 1251

    题目链接:https://vjudge.net/problem/HDU-1251

    Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).

    Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

    注意:本题只有一组测试数据,处理到文件结束.
    Output对于每个提问,给出以该字符串为前缀的单词的数量.
    Sample Input
    banana
    band
    bee
    absolute
    acm
    
    ba
    b
    band
    abc
    Sample Output
    2
    3
    1
    0
    思路:字典树模板
    // 
    // Created by HJYL on 2019/8/17.
    //
    
    #include <iostream>
    #include <vector>
    #include <map>
    #include <string>
    #include <queue>
    #include <stack>
    #include <set>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cstdlib>
    using namespace std;
    typedef long long ll;
    const int maxn=1e6+10;
    char str[maxn];
    struct trie{
        trie* next[26];
        int sum;
        trie(){
            for(int i=0;i<26;i++)
            {
                next[i]=NULL;
            }
            sum=0;
        }
    }root;
    void insert(char* s)
    {
        trie* p=&root;
        for(int i=0;s[i];i++)
        {
            if(p->next[s[i]-'a']==NULL)
            {
                p->next[s[i]-'a']=new trie;
            }
            p=p->next[s[i]-'a'];
            p->sum++;
        }
    }
    int find(char* s)
    {
        trie* p=&root;
        for(int i=0;s[i];i++)
        {
            if(p->next[s[i]-'a']==NULL)
                return 0;
            else
                p=p->next[s[i]-'a'];
        }
        return p->sum;
    }
    int main()
    {
        //freopen("C:\Users\asus567767\CLionProjects\untitled\text","r",stdin);
        while(gets(str)&&str[0]!='')
        {
            insert(str);
        }
        while(scanf("%s",str)==1)
        {
            printf("%d
    ",find(str));
        }
    
        return 0;
    }
    
    
  • 相关阅读:
    1."问吧APP"客户需求调查分析
    “软件工程”课程的学习目标
    范式
    知乎:有哪些让你相见恨晚的 PPT 制作技术或知识?
    前端指南
    在网页中JS函数自动执行常用三种方法
    index的用法
    搜索引擎的正确姿势
    display与visibility
    bootstrap之模态框
  • 原文地址:https://www.cnblogs.com/Vampire6/p/11370882.html
Copyright © 2011-2022 走看看