这题目写了一上午,一直错,然后自己测试数据还都对。为什么呢,为什么呢,后来我才发现代码里有一行free(tmp)。。。在55行那里。。。

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#define mod 999983
using namespace std;
struct node{
int num[];
node *next;
}p[mod];
int sign[mod];
int cmp_1(node *a,node *b,int pos){
int i,j=pos;
for(i=;i<;++i){
if(a->num[i]!=b->num[j])
return ;
j=(j+)%;
}
return ;
}
int cmp_2(node *a,node *b,int pos){
int i,j=pos;
for(i=;i<;++i){
if(a->num[i]!=b->num[j])
return ;
j=(j-+)%;
}
return ;
}
int cmp(node *a,node *b){
int i,j;
for(i=;i<;++i){
if(cmp_1(a,b,i)==||cmp_2(a,b,i)==)
return ;
}
return ;
}
int main(){
node *tmp;
node *op;
int key;
int success;
tmp=(node *)malloc(sizeof(node));
int i,j,n,cnt;
while(~scanf("%d",&n)){
memset(sign,,sizeof(sign));
success=;
for(i=;i<mod;++i){
p[i].next=NULL;
for(j=;j<;++j) p[i].num[j]=;
} for(cnt=;cnt<n;++cnt){
//free(tmp);
key=;
tmp=(node *)malloc(sizeof(node));
for(i=;i<;++i){
scanf("%d",&tmp->num[i]);
key+=tmp->num[i];
key=key%mod;
}
if(success==) continue;
tmp->next=NULL;
key=key%mod;
if(sign[key]==){
p[key]=*tmp;
sign[key]=;
}else if(sign[key]==){
op=&p[key];
while(){
if(cmp(op,tmp)==){
success=;
break;
}
if(op->next==NULL) break;
op=op->next;
}
if(success) continue;
op->next=tmp;
}
}
if(success==) printf("Twin snowflakes found.\n");
else printf("No two snowflakes are alike.\n"); }
return ;
}

poj3349 哈希的更多相关文章

  1. poj3349(哈希+链地址法)

    给出N个六边形的6个边长,问其中是否有完全相同的两个六边形,完全相同包括边的长度和位置都要相同.边给出的顺序是逆时针或者顺时针的. 给每个6边形一个哈希值,方法是对6条边长度的平方和取模 #inclu ...

  2. hdu&&poj搜索题题号

    搜索 hdu1067 哈希 hdu1401 双向搜索 hdu1430 哈希 hdu1667 跌搜+启发式函数 hdu1685 启发式搜索 hdu1813 启发式搜索 hdu1885 状态压缩搜索 hd ...

  3. poj3349 Snowflake Snow Snowflakes —— 哈希表

    题目链接:http://poj.org/problem?id=3349 题意:雪花有6个瓣,有n个雪花,输入每个雪花的瓣长,判断是否有一模一样的雪花(通过旋转或翻转最终一样,即瓣长对应相等).如果前面 ...

  4. POJ3349 Snowflake Snow Snowflakes(哈希)

    题目链接. 分析: 哈希竟然能这么用.检查两片雪花是否相同不难,但如果是直接暴力,定会超时.所以要求哈希值相同时再检查. AC代码: #include <iostream> #includ ...

  5. poj3349找相同的雪花(哈希)

    题目传送门 题目大意:给你n个雪花,每个雪花的六个棱都有各自的长度,如果存在两片雪花的每条棱长度对应相同,则输出一句英文,如果不存在就输出另外一句英文,n和长度都比较大. 思路:第一次真正接触哈希,查 ...

  6. POJ3349 Snowflake Snow Snowflakes 【哈希表】

    题目 很简单,给一堆6元组,可以从任意位置开始往任意方向读,问有没有两个相同的6元组 题解 hash表入门题 先把一个六元组的积 + 和取模作为hash值,然后查表即可 期望\(O(n)\) #inc ...

  7. POJ3349 Snowflake Snow Snowflakes (JAVA)

    首先声明代码并没有AC,内存超了 但我对此无能为力,有没有哪位大神好心教一下怎么写 哈希,然后比较花瓣数组,这些应该都没问题才对..唉.. 贴MLE代码 import java.util.*; pub ...

  8. [PHP内核探索]PHP中的哈希表

    在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...

  9. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

随机推荐

  1. OAuth2.0_豆瓣登录_API错误返回码说明一览表[转]

    转自: http://blog.unvs.cn/archives/douban-oauth-2.0-error_code.html 在遵循OAuth2.0协议,开始制作豆瓣过程中,经常会遇到以下两个错 ...

  2. CentOS配置网卡,重启网络显示:Device does not seem to be present(转载)

    From:http://www.cnblogs.com/fbwfbi/archive/2013/04/29/3050907.html 一.故障现象: [root@c1node01 ~]# servic ...

  3. Maven内置隐式变量(转)

    Maven提供了三个隐式的变量可以用来访问环境变量,POM信息,和Maven Settings env env变量,暴露了你操作系统或者shell的环境变量.便 如在Maven POM中一个对${en ...

  4. 庭审全程文字实录 z

    备受关注的深圳快播公司涉黄案两日来在北京市海淀法院开庭审理,快播CEO王欣(微博).事业部总经理吴铭.事业部副总经理张克东.事业部副总经理兼市场部总监牛文举出庭接受审理. 面对传播淫秽物品牟利罪的指控 ...

  5. SVN安装及常见问题解决

    一.SVN简介 SVN作为以一种崛起的版本管理工具,是CVS的接班人.对于概念性的介绍我这里就不多赘述,网上很多介绍. 工作流程如下图: 二.安装 SVN的重要性就不再赘述,这里以Versionsv1 ...

  6. javascript数组去重的三种常用方法,及其性能比较

    在进行数组操作时往往会遇到去掉重复项的问题,下面简单介绍下数组去重的方法,以及其执行效率 方法一        采用两次循环        原理:拿当前的和他后面的比,如果后面的有重复的就干掉     ...

  7. expdp impdp终极教学

    源地址:http://blog.csdn.net/giianhui/article/details/7788550

  8. [ActionScript 3.0] LocalConnection示例

    下例包含两个 ActionScript 类,这两个类应当编译到两个单独的 SWF 文件中: 在 LocalConnectionSenderExample SWF 文件中,将创建 LocalConnec ...

  9. [ActionScript 3.0] AS3.0 Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain

    实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定. 1.如果在本地将项目位置添加到flashplayer受信任位置(上一篇文章所述) ...

  10. tarjan 边双连通分量 对点进行分组 每组点都在一个双连通分量里边

    int dfn[N],low[N],id[N],s[N],p,num,t,son[N];//dfn记录dfs时间戳//low代表当前点到达的最小时间戳,id对点进行分组编号.num是时间戳//s临时存 ...