vua 10282 - Babelfish(Hash、map)

2024-05-28 19:08
文章标签 map hash 10282 babelfish vua

本文主要是介绍vua 10282 - Babelfish(Hash、map),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击打开链接


题意:100000个字的字典。


1、直接用STL中的map 0.532sAC

2、Hash 0.115sAC


#include <iostream>
#include <cstdio>
#include <string>
#include <map>
using namespace std;
int const MAX_SIZE = 11, MAX_N = 100000;
map<string,string> dict;void print(string s)
{if(dict.find(s) != dict.end())cout << dict[s] << endl;else cout << "eh" << endl;
}int main()
{string s1, s2;while(cin >> s1 && cin.peek()!='\n'){cin >> s2;dict[s2] = s1;}print(s1);while(cin >> s1)print(s1);return 0;
}

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int const MAX_SIZE = 11, MAX_N = 100000, MAX_HASH = 100003;
int n;
char s1[MAX_N][MAX_SIZE], s2[MAX_N][MAX_SIZE];
int head[MAX_HASH], nextu[MAX_HASH];void init_lookup_tabel(){ memset(head, 0, sizeof(head));}int get_hash(char *s)
{int seed = 131;int hash = 0;while(*s)hash = hash * seed + *s++;return (hash & 0x7fffffff) % MAX_HASH;
}int find(char *s)
{int hash = get_hash(s);int u = head[hash];while(u){if(!strcmp(s2[u], s))return u;u = nextu[u];}return -1;
}void try_to_insert(int i)
{int hash = get_hash(s2[i]);nextu[i] = head[hash];head[hash] = i;
}void print(char *s)
{int i = find(s);if(i != -1)printf("%s\n", s1[i]);else printf("eh\n");
}int main()
{n = 1;char ss1[MAX_SIZE], ss2[MAX_SIZE];while(scanf("%s", ss1) && cin.peek()!= '\n'){scanf("%s", ss2);strcpy(s1[n], ss1);strcpy(s2[n], ss2);try_to_insert(n++);}print(ss1);while(scanf("%s", ss1) != EOF)print(ss1);return 0;
}

这篇关于vua 10282 - Babelfish(Hash、map)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011428

相关文章

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

Golang中map缩容的实现

《Golang中map缩容的实现》本文主要介绍了Go语言中map的扩缩容机制,包括grow和hashGrow方法的处理,具有一定的参考价值,感兴趣的可以了解一下... 目录基本分析带来的隐患为什么不支持缩容基本分析在 Go 底层源码 src/runtime/map.go 中,扩缩容的处理方法是 grow