poj 3349 Snowflake Snow Snowflakes 哈希
来源:互联网 发布:企业如何注册域名 编辑:程序博客网 时间:2024/05/17 09:31
题意:判断是否有两朵相同的雪花,相同条件为,相邻的瓣长度相等
http://blog.csdn.net/lyy289065406/article/details/6647351 这里的讲解不错~~
代码如下:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000000;const int divi = 999983;struct node{ int x[7];}leaf[maxn];struct node1{ int v, next;}edge[maxn];int value, pre[maxn], n;bool issame(int num){ int i, j, k, t, tt, tmp; int aa, bb, flag = 0; // cout<<num<<" "<<pre[num]<<" "<<edge[pre[num]].next<<" "<<edge[edge[pre[num]].next].next<<endl; for( i= pre[num]; i!= -1 && edge; i= edge[i].next){ for( j= edge[i].next; j!= -1; j = edge[j].next){ aa = edge[i].v; bb = edge[j].v; // cout<<aa<<" "<<bb<<endl; flag = 0; for( tt= 0; tt<6; tt++){ flag = 0; for( t= 0, k= 0; t<6; t++, k++){ if( leaf[aa].x[t] != leaf[bb].x[(tt+k)%6]){ flag = 1; break; } } if( flag == 0) return true; } for( tt= 0; tt<6; tt++){ flag = 0; for( t= 0, k= 5; t<6; t++, k--){ if( leaf[aa].x[t] != leaf[bb].x[(tt+k)%6]){ flag = 1; break; } } if( flag == 0) return true; } } } return false;}int main(){ // freopen("1.txt", "r", stdin); int i, j, k, tmo, sum, flag; int sno[7], snow[7]; while( scanf("%d", &n) != EOF){ sum = 0; value = 0;flag= 0; memset( pre, -1, sizeof( pre)); for( i= 0; i<n; i++){ sum = 0; for( j= 0; j<6; j++){ scanf("%d", &leaf[i].x[j]); sum += (leaf[i].x[j]%divi); } sum%= divi; if( pre[sum] != -1) flag = 1; edge[value].v = i; edge[value].next = pre[sum]; pre[sum] = value ++; // cout<<sum<<" "<<i<<" "<<pre[sum]<<" "<<value-1<<endl; } // cout<<"sum i pre value"<<endl; if( flag == 0) { printf("No two snowflakes are alike.\n"); continue; } flag = 0; for( i= 0; i<divi; i++){ if( pre[i] == -1) continue; if( edge[pre[i]].next == -1) continue; if( issame(i)) {flag = 1;break;} } if( flag == 1)printf("Twin snowflakes found.\n"); else printf("No two snowflakes are alike.\n"); } return 0;}
- poj 3349 Snowflake Snow Snowflakes 哈希
- Snowflake Snow Snowflakes - POJ 3349 哈希
- ***POJ 3349 Snowflake Snow Snowflakes(哈希)
- POJ 3349 Snowflake Snow Snowflakes(哈希)
- Poj 3349 Snowflake Snow Snowflakes(哈希+vector)
- poj-3349-Snowflake Snow Snowflakes-哈希
- POJ 3349-Snowflake Snow Snowflakes(哈希)
- poj 3349 Snowflake Snow Snowflakes 哈希
- POJ 3349 Snowflake Snow Snowflakes 哈希
- POJ Snowflake Snow Snowflakes 3349 (哈希)
- (POJ 3349)Snowflake Snow Snowflakes 哈希
- Snowflake Snow Snowflakes poj 3349 哈希
- 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
- 李伟大侠之作--ajax解析xml详解,看后不用再看别的帖子了
- js图片效果
- python fork
- Face detection using HTML5
- windows程序设计 例题解析 MENUDEMO.C
- poj 3349 Snowflake Snow Snowflakes 哈希
- signal的运用
- 给海归技术创业兄弟的九个忠告(转载)
- C++中cout输出字符型指针地址值的方法
- js方格游戏
- 国际化标签_李晖晖的个人总结(第十四次课)
- javaWeb实现文件上传与下载
- 求x的n次幂
- js时钟实现