简单字典树。

 1 #include <stdio.h>
 2 #include <string.h>
 3 const int N = 200000;
 4 int nxt[N][26],word[N];
 5 char eng[N/2+10][11];
 6 bool end[N];
 7 int cnt,cur,p,f;
 8 void insert(char *t, char *s)
 9 {
10     cur = 0;
11     while(*t)
12     {
13         p = *t - 'a';
14         if(!nxt[cur][p])
15         {
16             memset(nxt[cnt],0,sizeof nxt[0]);
17             nxt[cur][p] = cnt++;
18         }
19         cur = nxt[cur][p];
20         t++;
21     }
22     end[cur] = 1;
23     word[cur] = f;
24     strcpy(eng[f++],s);
25 }
26 void query(char *t)
27 {
28     cur = 0;
29     while(*t)
30     {
31         p = *t - 'a';
32         if(!nxt[cur][p])
33         {
34             printf("eh\n");
35             return ;
36         }
37         cur = nxt[cur][p];
38         t++;
39     }
40     if(end[cur])
41         printf("%s\n",eng[word[cur]]);
42 }
43 int main()
44 {
45     char s1[11],s2[11],s[30];
46     cnt = f = 1;
47     memset(nxt[0],0,sizeof nxt[0]);
48     while(gets(s),s[0])
49     {
50         sscanf(s,"%s%s",s1,s2);
51         insert(s2,s1);
52     }
53     while(~scanf("%s",s1))
54         query(s1);
55     return 0;
56 }

转载于:https://www.cnblogs.com/lzxskjo/archive/2012/08/29/2661090.html

poj - 2503 Babelfish相关推荐

  1. Poj 2503 Babelfish(Map操作)

    一.Description You have just moved from Waterloo to a big city. The people here speak an incomprehens ...

  2. [POJ 2503] Babelfish【二分查找】

    题目大意 给你一个词典,每行有两个字符串x,y,表示y翻译成x. 一行空行隔开. 给你一些单词y,问你翻译后的x,如果词典里没有,那么就输出"eh" 解题报告 C++调map,还可 ...

  3. POJ - 2503

    POJ - 2503 这题用map做时有2100ms,而用字典树去做时360ms就过了. map的 字典树的: 下面是代码: 1 #include<iostream> 2 #include ...

  4. 58 - 算法 - 百练 2503:Babelfish 二分查找与存储

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...

  5. 【POJ 2503】Babelfish(水题)stl map存取即可

    题目链接 题目链接 http://poj.org/problem?id=2503 题意 英文A <=> 方言B 输入B,求A Code(G++) #include <iostream ...

  6. 【POJ】2503 Babelfish(字典树,map,指针)

    一.map 输入时候的格式有点难想,还有一种想法是用gets读取,然后用sscanf分开,分别存到两个数组中去,再加入map中,但是这一种方法目前还没有实现.. #include <iostre ...

  7. poj 2503(字符串hash)

    解题思路(copy别人的):通过ELFhash函数来做.冲突处理则是用到链表的方法. #include <iostream> #include <fstream> #inclu ...

  8. poj 2503 Trie树

    典型的Trie树, 算是复习一下字符串吧, 就是输入有点恶心,代码如下: #include <cstdio> #include <cstring> #include <a ...

  9. 北大OJ(POJ 2503)在线翻译

    描述 你刚从滑铁卢搬到一个大城市.这里的人说着一种难以理解的外语方言.幸运的是,你有一本字典来帮助你理解它们. 输入 输入由多达100,000个字典条目组成,后面跟着一个空行,后面跟着多达100,00 ...

最新文章

  1. 大数据分布式集群搭建(9)
  2. 双脑协同RSVP目标检测
  3. python读取本地文件-python解析本地HTML文件
  4. innodb和myisam的区别
  5. OpenCASCADE可视化:应用交互服务之标准交互式对象类
  6. C语言中main函数的研究,以及对代码断点调试的研究(王爽老师 汇编语言)
  7. Python format() 函数
  8. count函数_计数函数Count、Counta、Countblank、Countif、Countifs技巧解读
  9. PartyUs 待添加内容(不定期更新)
  10. 链表根据主元切分成3段
  11. cordova 修改app名称和图标
  12. 电脑软件单击打开切换为双击打开
  13. s数据结构替换子表java版,数据结构(Java版)-习题解答与实验指导
  14. 参考文献中文字符间距过大问题
  15. [车联网安全自学篇] Car Hacking之CAN总线初探
  16. python wechat_wechat-sdk
  17. QDialog添加最大化最小化按钮
  18. kindeditor-4.1.10在线编辑器的使用
  19. 忆鲁迅《故乡》中的一句话
  20. 游戏大全(持续更新中……)

热门文章

  1. URAL - 1966 - Cycling Roads(并检查集合 + 判刑线相交)
  2. jquery中常容易出错的checkbox的获得值
  3. Arduino 实现八段数码管显示练习
  4. MooTools 1.4 源码分析 - (关于Core、Type等模块分析)
  5. 3年前的一个小项目经验,分享给菜鸟兄弟们(公文收发小软件:前期需求调查部分)...
  6. extract($_POST[])
  7. 使用phpStudyy运行tipask
  8. 挂载硬盘报错无法挂载、分区只读的解决方法
  9. Ext3和Ext4文件系统
  10. Oracle中是用case...when语句进行判断