这题就是一个字典树的模板题

统计难题

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 16997    Accepted Submission(s): 7318

Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.
注意:本题只有一组测试数据,处理到文件结束.
Output
对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input
banana band bee absolute acm ba b band abc
Sample Output
2 3 1 0
想到的是对于输入我却不会,以空行结束
while(gets(a)!=EOF&&a[0])//这题不能用scanf();
\\if(strlen(a)==0) break;

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
typedef struct Node
{
    int flag;
    struct Node *next[26];
}Node,*Tree;
int kk=0;
void Creat(Tree &T)
{
    T=(Node *)malloc(sizeof(Node));
    T->flag=0;
    for(int i=0;i<26;i++)
        T->next[i]=NULL;
}
void insert(Tree &T,char *s)
{
    Tree p=T;
    int l=strlen(s);
    int t;
    for(int i=0;i<l;i++)
    {
        t=s[i]-'a';
        if(p->next[t]==NULL)
            Creat(p->next[t]);
        p=p->next[t];
        p->flag++;
    }
}
int search(Tree &T,char *s)
{
    int t;
    Tree p=T;
    int l=strlen(s);
    for(int i=0;i<l;i++)
    {
        t=s[i]-'a';
        if(p->next[t]==NULL)
            return 0;
        p=p->next[t];
    }
    return p->flag;
}
void Delete(Tree p)
{
    for(int i=0;i<26;i++)
     if(p->next[i]!=NULL)
      Delete(p->next[i]);
    free(p);
}
int main()
{
    char str[20];
    char a[20];
    Tree T;
    Creat(T);
    while(gets(a)&&a[0])
    {
        insert(T,a);
    }
    int tt;
    while(scanf("%s%*c",str)!=EOF)
    {
        tt=search(T,str);
        printf("%d\n",tt);
    }
    Delete(T);
    return 0;
}

hdu1251(统计难题)相关推荐

  1. HDU1251 统计难题【字典树】

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  2. HDU1251 统计难题 【trie树】

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  3. HDU1251 统计难题 trie树 简单

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 题意: 找前缀数量 裸模板 1 #include<cstdio> 2 #include< ...

  4. HDU-1251 统计难题 map写法

    #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #inclu ...

  5. C++统计难题hdu1251

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  6. HDU 1251 统计难题 字典树/STL

    统计难题 Time Limit:2000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Description Ig ...

  7. hdu 1251统计难题

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  8. hdu 1251 统计难题(trie树入门)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  9. HDU 1251 统计难题(Trie模版题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

最新文章

  1. 在 ASP.NET 中执行 URL 重写
  2. 抓包工具tcpdump及分析工具wireshark
  3. 【Python-ML】神经网络-多层感知器增加梯度检验
  4. nginx反向代理原理简介
  5. Integer.parseInt() 与 Integer.valueOf() 区别
  6. 高等数学上-赵立军-北京大学出版社-题解-练习5.2
  7. 2020年计算机一级B押题,2021年全国计算机一级选择题真题押题.doc
  8. python 常用包_七月在线—Python和数据分析Lesson 1
  9. android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
  10. bluestacks手机模拟器安装qq或微信时,鼠标左键点聊天编辑框后会自动输入 c 字母
  11. 常用电脑端口作用大曝光
  12. 调试蓝牙串口模块HC-05
  13. JSESSIONID理解
  14. 2021春节档电影数据分析
  15. 《人月神话》(The Mythical Man-Month)4概念一致性:专制、民主和系统设计(System Design)...
  16. java 运行一个程序的全部过程
  17. 数字信号处理课程设计:语音信号采集与滤波处理系统设计与实现 (MATLAB)——(一)
  18. H264编码系列之profile level控制
  19. 投资理财-大跌也许是好事情
  20. C++面试试题大全,包括华为、雅虎等企业

热门文章

  1. FlatBuffers要点
  2. Youtube最佳Red5 官方视频下载指南,字幕【亲测成功】
  3. sql存储过程----备份数据库
  4. java怎么快速创建监听类_如何创建监听器
  5. 罗马音平假名片假名转换器_记不住五十音的你,你肯定需要这套日语五十音谐音巧记法...
  6. python在工厂中的应用_python中的工厂方法
  7. 原作者出局!Faker.js已被社区控制。。
  8. “科班出身”的程序员和“培训出身”的程序员的大型辩论(甩锅)现场
  9. 微盟耗时 145 个小时弥补删库,血亏 1.5 亿元!
  10. 我想说:mysql 的 join 真的很弱|文末福利