#include<stdio.h>

#include<iostream>

struct node {

int num,i;

node *a[27];

char s[20];//定义局部不是空的

node() {

num=0;

for(i=0;i<26;i++)

a[i]=NULL;

}

}*root;

char s2[20],str[20],str1[3100],s1[20],h[20];

void insert(int len ,node *root) {

int i;

for(i=0;i<len;i++) {

if(root->a[s1[i]-'a']==NULL) 

root->a[s1[i]-'a']=new node();

root=root->a[s1[i]-'a'];

}

root->num=1;

     strcpy(root->s,s2);

return ;

}

void find (int len,node *root) {

int i;

for(i=0;i<len;i++) {

root=root->a[str[i]-'a'];

if(root==NULL)

            return ;

}

if(root->num==1)//必须判断是否存在

strcpy(h,root->s);

return;

}

void del(node *root) {

int i;

for(i=0;i<26;i++)

if(root->a[i]!=NULL)

del(root->a[i]);

delete root;

}

int main() {

int i,k;

root=new node();

        scanf("%s",str);

while(scanf("%s",s2),strcmp(s2,"END")) {

scanf("%s",s1);

insert(strlen(s1),root);

}

     scanf("%s",str);

getchar();

while(gets(str1),strcmp(str1,"END")) {

k=0;h[0]=0;

for(i=0;str1[i];i++) {

if(str1[i]>='a'&&str1[i]<='z')

str[k++]=str1[i];

else {

if(k==0) {

printf("%c",str1[i]);

continue;

}

str[k]=0;

find(strlen(str),root);

if(strlen(h)==0)

printf("%s",str);

else

printf("%s",h);

k=0;

h[0]=0;

printf("%c",str1[i]);

}

}

str[k]=0;

find(strlen(str),root);

if(strlen(h)==0)

printf("%s",str);

else

printf("%s",h);

printf("\n");

}

del(root);

return 0;

}

hdu 1075 字典树的更多相关文章

  1. hdu 1075(字典树)

    What Are You Talking About Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/204800 K ...

  2. HDU 5687 字典树插入查找删除

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5687 2016百度之星资格赛C题,直接套用字典树,顺便巩固了一下自己对字典树的理解 #include< ...

  3. HDU 5384 字典树、AC自动机

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5384 用字典树.AC自动机两种做法都可以做 #include<stdio.h> #includ ...

  4. hdu 2112(字典树+最短路)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. hdu 2072(字典树模板,set,map均可做)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2072 lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词 ...

  6. Chip Factory HDU - 5536 字典树(删除节点|增加节点)

    题意: t组样例,对于每一组样例第一行输入一个n,下面在输入n个数 你需要从这n个数里面找出来三个数(设为x,y,z),找出来(x+y)^z(同样也可以(y+z)^1)的最大值 ("^&qu ...

  7. hdu 1251 字典树的应用

    这道题看了大神的模板,直接用字典树提交的会爆内存,用stl 里的map有简单有快 #include <iostream> #include <map> #include < ...

  8. hdu 2896 字典树解法

    #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...

  9. Repository HDU - 2846 字典树

    题意:给出很多很多很多很多个 单词 类似搜索引擎一下 输入一个单词 判断有一个字符串包含这个单词 思路:字典树变体,把每个单词的后缀都扔字典树里面,这里要注意dd是一个单词 但是把d 和dd都放字典树 ...

随机推荐

  1. leetcode764 Largest Plus Sign

    思路: 首先使用dp计算出在每个位置(i, j)上下左右最多有多少个连续的1,得到up[i][j], down[i][j], left[i][j], right[i][j].然后计算这四个值中的最小值 ...

  2. Objective-C Memory Management 内存管理 2

    Objective-C Memory Management 内存管理  2  2.1 The Rules of Cocoa Memory Management 内存管理规则 (1)When you c ...

  3. Sass的的使用二

    1.嵌套输出方式 nested Sass 提供了一种嵌套显示 CSS 文件的方式.例如 nav { ul { margin: 0; padding: 0; list-style: none; } li ...

  4. Proc datasets

    作用:控制数据集.Datasets 过程运行结果不输出,结果只有在日志里才能看到. 基本语法: proc datasets lib=work; quit; 用法: 1. 更改数据集 proc data ...

  5. 初学者对C++的切身感受

    上周和一同学聊起了当前一些比较流行且运用广范的编程语言,苹果的IOS比起其它语言 来说更加言简意赅,简单明了,并且他现在也打算一直弄IOS.我之前一直是用C语言和 GNU ARM汇编语言,因为这两种语 ...

  6. laravel easywechat服务器故障问题

    该公众号提供的服务出现故障,请稍后再试 laravel的 csrf,因为laravel框架自带了这个,微信请求肯定没有这个,所以不成功!所以你要么关了csrf,要么,把微信请求的这个地址放在设置外! ...

  7. MFC_简易文件管理器

    练习_简易文件管理器 Edit1编辑框绑定变量,初始化内容 m_EditCtrl = L"D:\"; 添加List控件,属性设置report,OnInitDialog()函数里添加 ...

  8. [SQL]数据分析SQL笔试题

    SQL笔试题 1.请简单写出left join和join的用法区别(可举例说明): 2.求出订单表(order表)中每个客户(custid)的最近一次购买日期(要求:按custid降序排列,trans ...

  9. JavaSE-10 多态

    学习要点 多态的优势和应用场合 父类和子类之间的类型转换 instanceof运算符的使用 父类作为方法形参实现多态 父类作为返回值实现多态 使用多态的原因 需求描述: 在宠物管理系统中,宠物饿了,需 ...

  10. 2.C# 输入一个整数,求质因数

    C# 输入一个整数,求质因数 List<int> results = new List<int>(); int number = Int32.Parse(Console.Rea ...