这里用哈希表简化了对应关系

Problem Description
小明有一个神奇的海螺,你对海螺说一段字符串,海螺就会返回一个单词,有字符串里面的所有字符组成
如告诉海螺
“lloeh”
海螺则会告诉你
“hello”
如果有多个单词对应,海螺则会输出字典序最小的那个,如果没找到输入’nothing to find’(不带引号)

Input
第一行一个m表示m个单词 (1≤m≤105)
接下来m行,每行一个字符串
第m+2行,输入一个k (1≤k≤105)
接来下k行,每行一串字符串

(m+k个字符串长度之和小于107,每一个字符串中的相同字母不会超过5个)

Output
输出k行,如果查到单词输出字典序最小的那个,否则输出’nothing to find’(不带引号)

Sample Input
5
abcd
dbca
hello
lloeh
xyz
3
cdab
holle
yxz
Sample Output
abcd
hello
xyz


代码:
#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <set>
#include <algorithm>
#include <cmath>using namespace std;
#define ll long long map< ll, set<string> > mp; // 用前一个量对应后面的字符串,set中会自动按字典序排列ll get_hash(string s)
{ll sum =0;int len = s.size();for(int i=0;i<len;i++){sum+=pow(6,s[i]-'a');//由于该题每个字符不超过5个,a对应6^0,b对应6^1,..,可以覆盖所有情况,而且每个字符串对应的数都是唯一的}return sum;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n, t;string s;cin >> n;for(int i=0;i<n;i++){cin>>s;ll tmp = get_hash(s);mp[tmp].insert(s);}cin >> t;//nothing to findfor(int i=0;i<t;i++){cin>>s;ll tmp = get_hash(s);if(mp[tmp].empty()) //nothing to findcout<<"nothing to find"<<endl;elsecout << *mp[tmp].begin()<<endl;}return 0;
}

M: Mysterious Conch(哈希表)相关推荐

  1. 【C#】集合_哈希表_字典_泛型_文件

    数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...

  2. PHP哈希表碰撞攻击原理

    哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招.本文结合PHP内核源码,聊一聊这种攻击的原理及实现. 哈希表碰撞攻击的基本原理 ...

  3. 在C#中应用哈希表(Hashtable)

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  4. 自己写的哈希表以及解决哈希冲突

    哈希表就是键值key-value对,使用hash函数让key产生哈希值,当不同的key产生相同的哈希值时就是哈希冲突了,产生哈希冲突可以使用拉链法. hash.c #include <stdio ...

  5. PHP内核中的哈希表结构

    https://github.com/HonestQiao/tipi/commit/17ca680289e490763a6a402f79afa2a13802bb36 下载:https://github ...

  6. 用开放地址法中的线性探查法解决冲突实现哈希表的运算

    为了更深的理解哈希算法,自己写了用开放地址法中的线性探查法解决冲突实现哈希表的运算. /*** Created by lirui on 14-8-13.* 用开放地址法中的线性探查法解决冲突实现哈希表 ...

  7. 散列表查找(哈希表)

    散列函数构造经常要考虑: 1.散列表的长度 2.关键字的长度 3.关键字的分布情况 4.计算散列函数所需的时间 5.记录的查找频率 一个"好"的散列函数应遵循一下两条原则 (1)函 ...

  8. 不同表结构数据迁移_数据结构:哈希 哈希函数 哈希表

    写在前面 希望你们看了能够有所收获,同时觉得不错的朋友可以点赞和关注下我,以后还会有更多精选文章分享给大家!大家可以关注一下java提升专栏 java提升​zhuanlan.zhihu.com 什么是 ...

  9. 【数据结构】 哈希表 详解

    目录 1. 概念 引入 2. 冲突 2.1 概念 2.2 避免 2.3 冲突-避免-哈希函数设计 2.4 冲突-避免-负载因子调节(重点) 2.5 冲突-解决 2.5.1 闭散列 2.6 冲突-解决- ...

最新文章

  1. 墙面也能变镜子,只看影子就能还原视频,MIT新算法让摄像头无死角
  2. 计算机 专业英语 考试,《计算机专业英语》期末考试试卷
  3. Python3有哪几种数据类型?
  4. Android之Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:扫描指定文件
  5. 展望Java的未来:空值类型
  6. python drop_duplicates_Pandas drop_duplicates方法不起作用
  7. C++ string s[10] 和 string s(10,‘ ‘)
  8. Ubuntu Server 18.04 与 MySQL 5.7
  9. lambda表达式 java 效率_Java8新特性效率之Lambda
  10. 信号生成及DFT的python实现
  11. 10-10-010-简介-官网-官网翻译
  12. Qt中Q_OBJECT与生成的moc文件的作用
  13. php中fread用法,phpfread函数与fread函数用法_PHP教程
  14. 什么是单页面应用SPA?和多页面应用的区别?
  15. Java利用PdfBox实现Pdf转图片
  16. Android 角标设置
  17. 何时需要对时间序列进行Log Transformation
  18. 新房子灶台风水方位设在什么地方比较好?
  19. MegaCli 安装及使用
  20. 工控产品之固态硬盘和普通硬盘的区别

热门文章

  1. Python学习0——基础知识1
  2. 什么是产品经理,职责是什么?如何入门?
  3. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)
  4. 【小结】南京大学软件工程专硕2021二战小结
  5. Android开发快速上手!来看看这份超全面的《Android面试题及解析》,详细的Android学习指南
  6. 华为服务器做系统蓝屏,服务器安装2008r2后蓝屏
  7. 安笙机器人_【搬文】《安妻》BY李小雾(安笙 佐安,未来机甲 年下生子,HE)...
  8. ASCLL字母表顺序
  9. 怎样使用MindMapper中的聚焦功能
  10. servu用户信息如何导出_购买1条人脸信息只需5毛钱!人脸识别智能锁如何坚守用户信息安全高地?...