Language of FatMouse
Time Limit: 10 Seconds
Memory Limit: 32768 KB
We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him.
Input Specification
Input consists of up to 100,005 dictionary entries, followed by a blank line, followed by a message of up to 100,005 words. Each dictionary entry is a line containing an English word, followed by a space and a FatMouse word. No FatMouse word appears more than once in the dictionary. The message is a sequence of words in the language of FatMouse, one word on each line. Each word in the input is a sequence of at most 10 lowercase letters.
Output Specification
Output is the message translated to English, one word per line. FatMouse words not in the dictionary should be translated as "eh".
Sample Input
dog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay
atcay
ittenkay
oopslay
Output for Sample Input
cat
eh
loops
赤裸裸的字典树,最近写字典树感觉不错,有写了一遍,把这题搞定。
注意输入!原来有一个输入神器:sscanf()
gets(str);
sscanf(str, "%s %s", ch, sh);
把字符串分成两部分,遇到空格就分开。如果有2个空格分成三段,则上述只能赋值前两段。 是一个用空格分开字符串赋值的神器啊!!!
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1109
题目:
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <string>
using namespace std;
struct node
{
char ch[12];
node *next[26];
};
node *root, memory[200005];
int cnt;
node *create()
{
node *p = &memory[cnt++];
int i;
for(i = 0; i < 26; i++)
p->next[i] = NULL;
return p;
};
void insert(char *s, char *c)
{
node *p = root;
int i, k;
for(i = 0; s[i]; i++)
{
k = s[i] - 'a';
if(p->next[k] == NULL)
{
p->next[k] = create();
}
p = p->next[k];
}
strcpy(p->ch, c);
}
void search(char *s)
{
node *p = root;
int i, k;
for(i = 0; s[i]; i++)
{
k = s[i] - 'a';
if(p->next[k] == NULL)
{
printf("eh\n");
return;
}
p = p->next[k];
}
printf("%s\n", p->ch);
}
int main()
{
char ch[15], sh[15], str[35];
root = create();
while(gets(str))
{
if(str[0] == 0) break;
sscanf(str, "%s %s", ch, sh);
insert(sh, ch);
}
while(gets(ch))
{
search(ch);
}
return 0;
}
分享到:
相关推荐
zoj 3663 Polaris of Pandora.md
【标题】"ZOJ 1002" 是一个在线编程竞赛题目,源自ZOJ(Zhejiang Online Judge),这是一个面向ACM/ICPC(国际大学生程序设计竞赛)的在线评测系统。题目编号1002,通常表示该题是ZOJ平台上的一个问题,可能涉及算法...
【标题】"zoj 源码700题"是指一个包含700多道ZOJ(在线判题系统Zhejiang Online Judge)编程竞赛题目的源代码集合。这个资源对于学习算法、提高编程技能以及准备编程竞赛的学员来说极具价值。 【描述】"包含了zoj...
ZOJ,全称“浙江大学程序在线评测系统”(Zhejiang University Online Judge),是一个提供信息学(算法竞赛)题库及程序评测的网站。以下是关于ZOJ的详细介绍: 一、基本信息 名称:浙江大学程序在线评测系统(ZOJ)...
浙江大学ZOJ题目分类旨在为编程学习者提供一个系统化的训练平台,帮助他们在算法和编程技能上实现质的飞跃。ZOJ平台提供的分类题目包括但不限于基础算法、数据结构、动态规划以及模拟问题等,这些分类覆盖了计算机...
14. ZOJ Problem Set - 1251 Box of Bricks 该题目主要考察了数组和矩阵的操作能力,要求解决 Box of Bricks 问题。该问题的解决需要对数组和矩阵的操作有深入的理解。 知识点:数组、矩阵、数组操作、矩阵操作。 ...
【标题】"ZOJ1027解题指南"是一个针对特定编程竞赛题目——ZOJ1027的解决方案集合。ZOJ,全称为“Zhejiang Online Judge”,是浙江大学主办的一个在线编程竞赛平台,提供了丰富的算法题目供参赛者练习和挑战。本解题...
ZOJ(Zhejiang Online Judge)是一个著名的在线编程竞赛平台,主要面向计算机科学与信息技术的学生和爱好者,提供了大量的算法题目供参赛者练习和提交代码。"ZOJ题目答案源码"是一个压缩包文件,其中包含了700多道...
Problem Arrangement zoj 3777
ZOJ,全称为Zhejiang Online Judge,是一个知名的在线编程竞赛平台,主要服务于浙江大学和国内其他高校的学生,提供丰富的算法题目供参赛者练习和比赛。这个压缩包文件名为"ZOJ 700多题源代码",意味着它包含了解决...
8. **数据结构优化**:高级数据结构如红黑树、平衡二叉搜索树(AVL树)、堆、字典树(Trie)等可能会在代码集中体现,以解决更高效的问题。 9. **模拟法**:对于一些直观但复杂的操作,如模拟流程或游戏过程,模拟...
标题中的"ZOJ.gz_ ZOJ_ZOJ 1016_max flow_zoj 1045_zoj.rar" 提到了两个ZOJ(Zhejiang Online Judge)的题目,分别是1016和1045,这两个数字通常代表在线编程竞赛中的题目编号。这些题目通常涉及到算法和数据结构的...
《ZOJ 4041问题的正确解法与程序分析》 ZOJ(Zhejiang Online Judge)是一个知名的在线编程竞赛平台,其中的题目编号为4041的题目吸引了众多程序员的关注。本篇文章将深入探讨ZOJ 4041的正确解法,并对提供的源代码...
【ZOJ.zip】是一个压缩包,里面包含了与ZOJ(Zhejiang Online Judge)相关的ACM(International Collegiate Programming Contest)题解。ZOJ是一个在线编程竞赛平台,它为参赛者提供了一系列算法题目进行练习,以...
学习ACM程序设计的朋友一定要看,这是训练必备的POJ ZOJ题目分类及解题思路
**ZOJ月赛题解 (ZOJ Monthly, August 2014)** ZOJ(Zhejiang Online Judge)是中国著名的在线编程竞赛平台之一,它为程序员和学生提供了丰富的算法练习和比赛机会。2014年8月的ZOJ月赛是一场面向广大编程爱好者的...
zoj 1003 c语言的,要写这么多描述吗。。
ZOJ1805代码
2. **高级数据结构**:如链表、树(二叉树、平衡树如AVL和红黑树)、图(深度优先搜索、广度优先搜索、最短路径算法如Dijkstra和Floyd)、堆(最大堆、最小堆)和哈希表等。 3. **数学问题**:包括数论(如质数判断...
标题“ZOJ1014.zip_zoj code_zoj1004”表明这是一个与ZOJ(ZeroJudge)在线判题系统相关的代码压缩包,其中可能包含了解决ZOJ问题1004的源代码。ZOJ是面向编程爱好者和学生的一个在线编程竞赛平台,它提供了各种算法...