魔咒词典------HDOJ杭电1880(字符串的处理,很简单)

Problem Description

哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。

给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?”

Input

首先列出词典中不超过100000条不同的魔咒词条,每条格式为:

[魔咒] 对应功能

其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。词典最后一行以“@[email protected]”结束,这一行不属于词典中的词条。

词典之后的一行包含正整数N(<=1000),随后是N个测试用例。每个测试用例占一行,或者给出“[魔咒]”,或者给出“对应功能”。

Output

每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。如果魔咒不在词典中,就输出“what?”

Sample Input

[expelliarmus] the disarming charm
[rictusempra] send a jet of silver light to hit the enemy
[tarantallegra] control the movement of one‘s legs
[serpensortia] shoot a snake out of the end of one‘s wand
[lumos] light the wand
[obliviate] the memory charm
[expecto patronum] send a Patronus to the dementors
[accio] the summoning charm
@[email protected]
4
[lumos]
the summoning charm
[arha]
take me to the sky

Sample Output

light the wand
accio
what?
what?

大半夜的竟然失眠了!!!!!!为毛啊!!!!!!

O(∩_∩)O哈哈~,今天是520诶!!!

卧槽,520管我屌丝毛事啊!!!!!!

哦,对了,今天题解还没写!!!!!!

卧槽,现在凌晨一点半啊!!!!!!

算了,快速水一题!!!!!!

这题主要是读取第二个魔咒的内容第一个会是空格,注意下这一点!!!!!!

如果对字符串输入还有读取有问题的童鞋,建议自己敲一下代码,然后总结,这东西我总结给你是没用的,你看了一遍觉得自己会了,其实,你会个P啊!!!!!!那是我会的,不是!你!!!!!!代码这种东西还是要靠自己去实践,积累经验,总结,然后运用实践,如此反复,世有实践,后有神牛!!!!!!

就像今天听到一个好消息!!!!!!我们计算机专业的学长被南加州大学计算机专业录取了,关键人家托福没过线!!!!!!人家之所以录取的原因就是他在ACM基地积累的丰富的编程经验,够炫吧!!!!!!

ono!!!!!!

讲偏了!!!!!!

上代码!!!!!!对字符串输入输出读取有疑问的小伙伴一定要自己去实践一下,一定一定一定一定啊啊啊啊啊啊!!!!!!

还有记得总结啊!!!!!!

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;

char liu[100000][26],xp[100000][88];
char ac[86];

int main()
{
    int i,j,k;
    int t,n,m;
    k=0;
    int flag;
    for(i=0;;i++)
    {
        for(j=0;;j++)
        {
            scanf("%c",&liu[i][j]);
            if(liu[i][j]==‘]‘) break;
            if(liu[i][0]==‘@‘&&liu[i][4]==‘@‘) break; //这里一定要输完这一句,不能第一个字母输完判断是@就break,会RE的!你break了人家还是要输完的啊!!!!!!切记!
        }
        if(liu[i][0]==‘@‘) break;
        getchar();
        gets(xp[i]);
        k++;
    }

    cin>>t;
    getchar();
    while(t--)
    {
        flag=0;
        gets(ac);
        if(ac[0]==‘[‘)
        {
            for(i=0;i<k;i++)
            {
                if(strcmp(ac,liu[i])==0)
                {
                    printf("%s\n",xp[i]);
                    flag=1;
                    break;
                }
            }
            if(flag==0)
                printf("what?\n");
        }
        else
        {
            for(i=0;i<k;i++)
            {
                if(strcmp(ac,xp[i])==0)
                {
                    for(j=1;j<strlen(liu[i])-1;j++)
                        printf("%c",liu[i][j]);
                    printf("\n");
                    flag=1;
                    break;
                }
            }
            if(flag==0)
                printf("what?\n");
        }
    }
    return 0;
}

哇!!!!!!睡觉咯,明天满课的同志伤不起啊!!!!!!

还是那句话,如果你发现了bug,还请指出,不胜感激!!!!!!

魔咒词典------HDOJ杭电1880(字符串的处理,很简单),布布扣,bubuko.com

时间: 2024-08-01 23:38:02

魔咒词典------HDOJ杭电1880(字符串的处理,很简单)的相关文章

hdu 1880 魔咒词典(字符串hash)

题目链接:hdu 1880 魔咒词典 题意: 给你一个10w的词典,让你输出对应的字段. 题解: map暴力存字符串肯定会卡内存,这里用BKDR字符串hash一下,用map映射一下. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace std; 4 typedef unsigned long long ull; 5 6 const int N=1e5+7,seed=133

hdu 1880 魔咒词典

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1880 魔咒词典 Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输

魔咒词典(hdu 1880)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出“what?” Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔

题目1029:魔咒词典(map使用以及字符串读取函数总结)

题目链接:http://ac.jobdu.com/problem.php?pid=1029 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus // // 1029 魔咒词典.cpp // Jobdu // // Created by PengFei_Zheng on 30/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <stdio.h> #

HDU 1880 魔咒词典 (Hash)

魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16641    Accepted Submission(s): 3916 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所

魔咒词典

hdu1880:http://acm.hdu.edu.cn/showproblem.php?pid=1880 题意:中文题,直接看题. 题解:第一法用hash做的的题目.虽然用了很长时间,但是还是AC了.而且用了string 所以有点慢. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 char

C++之路进阶——HDU1880(魔咒词典)

---恢复内容开始--- New~ 欢迎参加2016多校联合训练的同学们~ 魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12371    Accepted Submission(s): 3019 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很

九度oj 题目1029:魔咒词典

题目描述:     哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出“what?” 输入: 首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔咒] 对应功能 其中“魔

ACM1880魔咒词典

魔咒词典 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出“what?” Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式