POJ 3349 Snowflake Snow Snowflaks <数的哈希>
来源:互联网 发布:ubuntu 怎么卸载qq 编辑:程序博客网 时间:2024/06/05 07:05
题目:传送门。
分析:简单哈希题,直接上代码吧。
代码:
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using namespace std;const int mod=999983;class HashTable{public:HashTable():next(0) {}HashTable *next;int leaf[6];};HashTable *hash[mod];int len[6];bool clockwise(HashTable *h){for(int i=0;i<6;++i){int j;for(j=0;j<6;++j){if(h->leaf[j]!=len[(j+i)%6]) break;}if(j==6) return true;}return false;}bool antiClockwise(HashTable *h){for(int i=0;i<6;++i){int j;for(j=0;j<6;++j){if(h->leaf[j]!=len[(5-j-i+6)%6]) break;}if(j==6) return true;}return false;}bool judge(HashTable *h){if(clockwise(h)||antiClockwise(h)) return true;HashTable *temp=h->next;while(temp){if(clockwise(temp)||antiClockwise(temp)) return true;temp=temp->next;}HashTable *now=new HashTable;for(int i=0;i<6;++i){now->leaf[i]=len[i];}now->next=h->next;h->next=now;return false;}int main(){//ios::sync_with_stdio(false);int n;cin>>n;bool flag=false;memset(hash,0,sizeof hash);while(n--){int key=0;for(int i=0;i<6;++i){scanf("%d",&len[i]);key+=len[i];}key%=mod;if(!hash[key]){HashTable *temp=new HashTable;for(int i=0;i<6;++i){temp->leaf[i]=len[i];}hash[key]=temp;}else{if(flag) continue;flag=judge(hash[key]);}}if(flag) cout<<"Twin snowflakes found.\n";else cout<<"No two snowflakes are alike.\n";return 0;}
0 0
- POJ 3349 Snowflake Snow Snowflaks <数的哈希>
- poj 3349 Snowflake Snow
- POJ 3349 Snowflake Snow Snowflakes(数字哈希)
- poj 3349 Snowflake Snow Snowflakes (数字哈希)
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- poj 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- poj-3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- poj 3349 Snowflake Snow Snowflakes
- POJ 3349 Snowflake Snow Snowflakes
- 弱校联盟con#7 失恋得小T(后缀数组)
- Android Studio 2.3.3 图解配置NDK开发环境以及Hello Word To jni~
- Angular2 模型渲染的一个坑
- 通过配置文件来修改eclipse的默认编码
- 搬运自己的html学习笔记2-css的入门
- POJ 3349 Snowflake Snow Snowflaks <数的哈希>
- 剑指offer-面试题46-求1+2+3+...+n
- Oracle数据库中的约束
- 应用层协议
- 关于lstm和gru的一些简单资料,讲得比较容易理解
- 剑指offer-面试题45-圆圈中最后剩下的数字
- 递归问题的处理
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 鸟哥的linux私房菜学习笔记5