HDU 1251 统计难题(字典树)

原创 2013年12月03日 19:20:47
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1251
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LED struct node
struct node
{
    int n;
    struct node *next[26];
};
struct node *root;
struct node *build()
{
    int i;
    struct node *p;
    p=(struct node *)malloc(sizeof(LED));
    for(i=0;i<26;i++)
        p->next[i]=NULL;
        p->n=0;
    return p;
}
void insert(char *s)
{
    struct node *p;
    p=root;
    int l=strlen(s),i;
    if(l==0)  return;
    for(i=0;i<l;i++)
    {
           if(p->next[s[i]-'a']!=NULL)
                 {
                     p=p->next[s[i]-'a'];
                     p->n++;
                 }
           else
             {
                 p->next[s[i]-'a']=build();
                 p=p->next[s[i]-'a'];
                 p->n++;
             }
    }
}
int search(char *s)
{
    struct node *p;
    p=root;
    int l=strlen(s),i;
    if(l==0)  return 0;
    for(i=0;i<l;i++)
    {
        if(p->next[s[i]-'a']!=NULL)
          p=p->next[s[i]-'a'];
          else
          return 0;
    }
    return p->n;
}
int main()
{
    root=build();
    char s[15],ss[15];
    while(gets(ss),strcmp(ss,"")!=0)
        insert(ss);
    while(gets(s)!=0)
        printf("%d\n",search(s));
    return 0;
}

字典树 HDU-1251统计难题

关于字典树的讲解请参见

hdu 1251 统计难题(字典树)

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

hdu 1251 统计难题 字典树入门

所谓字典树,就是Trie树,很容易理解,为什么叫字典树,就想查字典一样,查一个英文单词,则从第一个字母开始查,然后第二个,第三个。。。直到遍历完整个单词。  它的优点是:利用字符串的公...

HDU 1251 统计难题(字典树)

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

HDU-1251 统计难题(字典树+map)

J - 统计难题 Time Limit:2000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Submit Sta...

HDU-1251 统计难题,字典树或者map!

统计难题      很久就看过这个题了,但不会~~~不会~~      题意:给出一张单词表,然后下面有若干查询,每次给出一个单词,问单词表中是否存在以这个单词为前缀的单词,输出数量。本身也是自身的...

HDU 1251 统计难题(字典树)

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

HDU-1251 统计难题(字典树)

/* nxt[i]中记录该节点中下个节点是否存在'a'+i,v记录该节点出现的次数 */ #include #include const int maxn = 1e6 + 5; struct node...

字典树——统计难题 ( HDU 1251 )

字典树:定义: 字典树(Trie树)是一种树形数据结构,其作用是存储多个字符串,并可以自动按照字典序排好。该算法的时间复杂度为O(n),空间复杂度为O(nk),其中n为所有字符串的和,k为所有可能出...
  • FeBr2
  • FeBr2
  • 2016年07月15日 16:40
  • 340

【HDU 1251】统计难题(字典树入门题)

统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Problem Desc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 1251 统计难题(字典树)
举报原因:
原因补充:

(最多只允许输入30个字)