zoukankan      html  css  js  c++  java
  • ZOJ 1109 Language of FatMouse

    最近学的线段树和扫描线实在是有点难度,所以我干脆拿出点时间写篇自己之前做的题目报告吧!

                                                         Language of FatMouse

    Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu

    Description

    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

    算法分析:
    学过算法的话,能看出来这道题应该用字典树做,我个人觉得除非功底非常强,否则单枪匹马
    敲出针对题目的字典树来其实还真不容易。由于最近学习了STL,所以我选择用STL来做,这样代
    码比较简洁,也容易看懂。我个人觉得,你只要把题意弄懂,清楚针对题目的算法,用STL来描述
    算法还是比较容易、方便、快捷的!
    本题的题意是:每行输入两个单词a, b; a是正常单词,b是胖老鼠语言(兽语吧)!
    然后有多组询问:每组给你兽语,让你输出对应这个兽语的正常单词。
    我选择用STL的map来做,开始时我以为map可以这样定义:map<string, string>,我第一
    次的代码是这么写的但编译不过去。于是赶紧查资料发现好多模板里的map定义都包含int,没有我
    刚才的那种定义。我这是突然想起来,记得在描述map时,说它是:键——值的类型。所以那个值好像
    就是int类型的。
    所以这道题,我定义map<string, int>类型,再额外开辟一个 char s[][]; 用来存储正常
    语言 。就像这样:
    读入s1,s2;
    e=1;
    map[s2]=e++; // map的值是存到二维数组里的下标
    strcpy(s[e-1], s1 );
    询问时,读入s3,if(map[s3>0]), 直接输出map[s3]
    否则,,,,,,,,
    Accepted的代码:
    #include <stdio.h>
    #include <string.h>
    #include <string>
    #include <map>
    #include <algorithm>
    
    using namespace std;
    
    char s1[20], s2[20], s3[20];
    
    char s[100007][15];
    
    
    int main()
    {
    	map<string, int>ma;
    	map<string, int>::iterator it;
        int e=1;
    	
        while(scanf("%c", &s1[0]) && s1[0]!='
    ' )
    	{
    		scanf("%s %s%*c", s1+1, s2 );
    
    		ma[s2]=e++ ;
    		strcpy(s[e-1], s1);
    
    	}
        int flag;
        while(scanf("%s", s3)!=EOF)
    	{
    
    	    if(ma[s3]>=1)
    		{
    			printf("%s
    ", s[ma[s3]] );
    		}
    		if(ma[s3]==0)
    		{
    			printf("eh
    ");
    		}
    	} 
    	
    	return 0;
    }
    


  • 相关阅读:
    ASP.NET部署前环境检测
    (转)基于.Net的单点登录(SSO)解决方案(1)
    Easy UI 勾选单选框
    Sqlserver 自定义函数
    MVC站点安全开发
    (转)基于.Net的单点登录(SSO)解决方案(2)
    ASP.NET站点跨子域名单点登陆(SSO)的实现
    角色权限功能点设置页面
    XmlHelper
    MVC错误处理(三)
  • 原文地址:https://www.cnblogs.com/yspworld/p/3906486.html
Copyright © 2011-2022 走看看