注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

fudq's AC Road

何以解忧,唯有AC!

 
 
 

日志

 
 

hdu 1251  

2012-07-10 17:26:20|  分类: ACM-hdu |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://acm.hdu.edu.cn/showproblem.php?pid=1251
字典树,第一次做字典树,值得纪念一下
/*
 * fudq.cpp
 *
 *  Created on: 2012-07-10
 *      Author: fudq
 */
//hdu 1754
#include<algorithm>
#include<stdio.h>
#include<string>
#include<string.h>
#include<math.h>
#include<queue>
#include<map>
#include<iostream>
using namespace std;
struct node
{
    int num;
    node *child[26];
};
node *p,*t;

void Build(char str[],node *p)
{
    int i,j;
    for(i=0;i<(int)strlen(str);i++)
    {
        if(p->child[str[i]-'a']==NULL)
        {
            t=new node;
            for(j=0;j<26;j++)
                t->child[j]=NULL;
            p->child[str[i]-'a']=t;
            p=p->child[str[i]-'a'];
            p->num=1;
        }
        else
        {
            p=p->child[str[i]-'a'];
            p->num++;
        }
    }
}

int Find(char str[],node *p)
{
    int i;
    for(i=0;i<(int)strlen(str);i++)
    {
        if(p->child[str[i]-'a']==NULL)
            return 0;
        p=p->child[str[i]-'a'];
    }
    return p->num;
}

int main()
{
#ifndef ONLINE_JUDGE
    freopen("testin.txt","r",stdin);
#endif
    int i;
    char str[20];
    node *root=new node;
    for(i=0;i<26;i++)
        root->child[i]=NULL;
    while(gets(str) && str[0]!='\0')
        Build(str,root);
    while(gets(str))
        printf("%d\n",Find(str,root));
    return 0;
}
  评论这张
 
阅读(282)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018