1002 Babelfish (POJ 2503)

解题思路:字符串的哈希,找一个比较好的hash函数就可以了,冲突时用链表的形式组织。用STL中的map等容器也可以过,不过性能差点。

代码如下:

#include <cstdlib>
#include <iostream>using namespace std;#define N 1000005
#define HASH 3999971struct node
{char a[11];char b[11];int next;
};struct node words[N];
int head[HASH];
int t = 0;int inline hash(char * key)
{unsigned int h = 0;while (*key){h = (h << 4) + *key++;unsigned int g = h & 0xf0000000L;if (g) h ^= g >> 24;h &= ~g;}return h % HASH;
}bool search(char s[])
{int key = hash(s);int u = head[key];while(u){if(strcmp(s, words[u].b) == 0){t = u;return true;}else{u = words[u].next;}}return false;
}int main()
{
#ifdef MYLOCALfreopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endifint i = 1;char s[30];memset(head, 0, sizeof(head));while(gets(s) && strcmp(s, "") != 0){sscanf(s, "%s %s", words[i].a, words[i].b);int key = hash(words[i].b);words[i].next = head[key];head[key] = i++;}while(scanf("%s", s) != EOF){if(search(s) == true){printf("%s\n", words[t].a);}else{printf("eh\n");}}return 0;
}

转载于:https://www.cnblogs.com/LETTers/archive/2012/04/24/2468967.html

Letters比赛第六场1002 Babelfish解题报告相关推荐

  1. LETTers比赛第三场 --1002 Ignatius and the Princess III解题报告

    提交人:侯建鹏 提交日期:2012/4/16 1002 Ignatius and the Princess III 解题思路(一):动态规划 先设置int p[N][N]; Dp 方程为:p[i][j ...

  2. Letters比赛第六场1004 Unit Fraction Partition解题报告

    1004 Unit Fraction Partition(POJ 1980) 解题思路:DFS + 剪枝.这题的剪枝条件还是比较严格的,很容易超时,我想到的需要剪枝的情况有以下几点:①前几项的和超过了 ...

  3. LeetCode第45场双周赛-解题报告

    LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为 ...

  4. 人生第一场CTF的解题报告(部分)

    解题报告 濮元杰部分: 王者归来: 120 场景 小王入职了一段时间,最近有点无聊.Web安全项目不多,白天看着其他项目组的同事忙得热火朝天,小王有点坐不住了,这也许是新人都会有的想法,乐于助人.想到 ...

  5. LETTers比赛第三场 --1003 大明A+B解题报告

    报告人:侯建鹏 报告日期:2012/4/16 1003 大明A+B 解题思路:模拟 我的方法很简单,就是不停的模拟.模拟.再模拟. 首先,把每个数都分成两部分,整数部分和小数部分,即a_h_count ...

  6. LETTers比赛第七场 Guess the Numbers

    这是其它国家区预赛的题目,大家可以看出来区域现场赛最简单题的难度. 解题的思路很容易想到,四则运算处理可能比较麻烦~但是经过细心调试应该问题不大:还有就是排列的生成可以自己写,但是这里提倡用next_ ...

  7. POJ 1002题 解题报告

    这个是超时版的: #include<iostream> #include<string> using namespace std; typedef struct Telepho ...

  8. 题解 | 2023河南萌新联赛第(四)场:河南大学 解题报告

    足下科技-c++软件开发工程师 岗位名:c++软件开发工程师 岗位类型:C++ 岗位职责: 岗位职责:1.参与公司自动驾驶软件系统中间件.框架的设计和开发:2.负责中间件在软硬件平台上的适 题解 | ...

  9. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

最新文章

  1. 删除360浏览器新标签页内的热词导航
  2. 4步win7下简单FTP服务器搭建(试验成功)
  3. 2.2 PostgreSQL 概念
  4. bzoj1670【Usaco2006 Oct】Building the Moat 护城河的挖掘
  5. spring整合kafka项目生产和消费测试结果记录(一)
  6. 详解Python的max、min和sum函数用法
  7. java使用jeids实现redis2.6的HyperLogLog数据结构的操作
  8. poj 1961 Period kmp基础
  9. [公告]新增项目交流区
  10. 黑苹果安装教程---联想G480安装懒人版10.9.5
  11. matlab如何释放内存,怎么能释放已经使用的内存
  12. CYGWIN安装方法
  13. JS间隔指定字符数后面插入
  14. 网页调用rm播放器代码 - 详细说明
  15. 移动互联网创业:美国不代表全球
  16. IDEA Maven下载依赖时报错: ERROR - #org.jetbrains.idea.maven - Cannot reconnect.
  17. vue3项目实现防抖/截流
  18. xp下硬盘安装Ubuntu Kylin 14.04
  19. Android Studio_day02 实际应用登录界面
  20. [心得]google软件工程师技术准备

热门文章

  1. Silverlight C# 游戏开发:Flyer06小小的改进让游戏更有趣
  2. 开源日志库log4cplus+VS2008使用整理
  3. iris数据_Python数据分析02-Iris-直方图与KDE
  4. java导出excel_纯干货:Java开源报表工具JasperReport使用
  5. 比较好用的python编译器_比酷传播
  6. mysql启动失败2005_数据库2005服务启动不了
  7. lisp删除块中图元_DeleteBlocks
  8. JVM初学之类的加载过程
  9. 怎么恢复linux定时器任务,定时操作 crontab at 以及恢复定时操作
  10. matlab刘卫国课后答案第三版,MATLAB程序设计与应用(刘卫国编)课后实验答案