博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj——3349 哈希加模拟
阅读量:6956 次
发布时间:2019-06-27

本文共 1000 字,大约阅读时间需要 3 分钟。

题目难点在于对两片雪花的比较,哈希可以加快搜索速度,防止超时,而对于如何逆时针和顺时针比较雪花是否相同便成为重点。

在这里给出两条公式:

设i为A、B的第i片叶子,j为B当前顺时针转过的格数

那么  A(i) ---> B( (i+j)%6 )

设i为A、B的第i片叶子,j为B当前逆时针转过的格数

那么  A(i) ---> B( (5-i-j+6)%6 )

#include 
using namespace std;#define mod 999983typedef struct Hashtable { int arm[6]; struct Hashtable * next;}Hashtable;int Hash(int a[]){ int key=0; for (int i = 0; i<6; i++) key += a[i] % mod; return key%mod;}Hashtable hash1[mod];void init(){ for (int i = 0; i
next = NULL; for (int x = 0; x<6; x++) node->arm[x] = snow[x]; } else{ node->next = hash1[key].next; hash1[key].next = node; for (int x = 0; x<6; x++) node->arm[x] = snow[x]; Hashtable * p = node; while (p->next != NULL){ p = p->next; a = clock(p->arm, snow); b = opposite(p->arm, snow); if (a || b){ printf("Twin snowflakes found.\n"); return 0; } } } } if (!a&&!b) printf("No two snowflakes are alike.\n"); return 0;}

  

转载于:https://www.cnblogs.com/lvcoding/p/7493306.html

你可能感兴趣的文章
SQL2012群集
查看>>
I/O重定向
查看>>
VIM配置文件
查看>>
国外免费网管软件推荐
查看>>
python while循环和双层循环
查看>>
ubuntu增加swap空间
查看>>
命令 cd
查看>>
数据结构C语言之多项式
查看>>
Linux 防火墙
查看>>
简练软考知识点整理-外指赶快先提投降
查看>>
32 MySQL主从
查看>>
HanLP-分类模块的分词器介绍
查看>>
Raid5磁盘阵列修复方法介绍
查看>>
技术解析系列 | PouchContainer 支持 LXCFS 实现高可靠容器隔离
查看>>
linux服务器之间设置ssh免密登录
查看>>
如何将M4A格式的音频转换为MP3格式?只需一步搞定
查看>>
APP项目资源对接平台有那几家
查看>>
微信自定义网页分享链接(可自定义链接 图片 内容介绍)
查看>>
Oracle管理表空间(三)--Oracle UNDO表空间
查看>>
Oracle使用rman进行表空间基于时间点的恢复
查看>>