魔咒词典
Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 21843 Accepted Submission(s): 5151

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

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

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

[魔咒] 对应功能

其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。词典最后一行以“@END@”结束,这一行不属于词典中的词条。
词典之后的一行包含正整数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
@END@
4
[lumos]
the summoning charm
[arha]
take me to the sky

Sample Output
light the wand
accio
what?
what?

Author
ZJU

Source
浙大计算机研究生复试上机考试-2008年

问题链接:HDU1880 魔咒词典
问题简述:(略)
问题分析:文本处理问题,不解释。
程序说明:字典要用unordered_map来建立,因为它是用哈希实现,速度快。而map是用红黑树实现,相对速度比较慢,这个题会TLE。
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU1880 魔咒词典 */#include <bits/stdc++.h>using namespace std;int main()
{unordered_map<string, string> mp;string s;while (getline(cin, s) && s != "@END@") {int k = s.find(']');mp.insert({s.substr(1, k - 1), s.substr(k + 2)});}int n;cin >> n;getchar();while (n--) {bool flag = false;getline(cin, s);if (s[0] == '[') {s = s.substr(1, s.size() - 2);if (mp.find(s) != mp.end()) {flag = true;cout << mp[s] << endl;}} else {s = s.substr(0);for (auto c : mp)if (c.second == s) {cout << c.first << endl;flag = true;break;}}if (!flag) puts("what?");}return 0;
}

HDU1880 魔咒词典【文本处理】相关推荐

  1. 字符串哈希(魔咒词典hdu1880)

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

  2. hdu 1880 魔咒词典

    魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. ccf练习-魔咒词典(字符串分割,<map>存储)

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

  4. 魔咒词典---哈希+二分

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

  5. 魔咒词典(C/C++)

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

  6. 湖南大学21夏训练三3.魔咒词典

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

  7. C++映射——魔咒词典

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

  8. 『杭电1880』魔咒词典

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

  9. 杭电acm 1880魔咒词典(水题)

    魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. 关于Java中何时使用static和工具类相关知识
  2. F. Cowmpany Cowmpensation(树形dp + 拉格朗日插值)
  3. 锁和并发性----隔离级别
  4. java自定义classloader_java自定义ClassLoader加载指定的class文件操作
  5. Bailian2799 浮点数格式【文本处理+最值】
  6. 基于私有云的数据库高可用架构实践
  7. 防火墙设置对外开放port
  8. modbus发送接收_自己编写MODBUS协议代码所踩过的坑
  9. 保存特定模式的snp文件
  10. Android修行手册 -初识Chip
  11. Linux c/c++开发常用头文件
  12. 解读升压电路(BOOST)与降压电路(BUCK)
  13. 神经网络预测模型基本原理与编程实现
  14. 返回值为对象调用拷贝构造函数
  15. 基于vmdk文件创建虚拟机
  16. 通过bitmap改变图片的大小
  17. 【组件篇】ionic3开源组件
  18. 美国犹他大学计算机专业怎么样,2018美国计算机工程专业排名一览表
  19. java des 中文乱码_网络上DesUtil.java关于汉字加密解密出现乱码的问题
  20. [MySQL免安装版本] 下载、配置、启动、密码修改

热门文章

  1. C11头文件threads.h声明了创建和管理线程,信号,条件变量的函数
  2. Ubuntu硬盘全盘备份tar和clonezilla两种方案
  3. 判断文件夹存在_Excel VBA之FSO-2.3文件夹的移动
  4. python的reader函数读取的信息包括抬头嘛_Python读取数据文件的方法
  5. 力扣-图解算法数据结构
  6. Mysql对数据库操作的简单命令
  7. 折线图_Line plot - 折线图
  8. windows nginx 停止和启动_nginx在window与linux中启动、停止、与关闭
  9. 剑指offer面试题06. 从尾到头打印链表(辅助栈法)
  10. tensorrt之tensorrtx编译:遇到的错误提示