题目链接: http://poj.org/problem?id=3349

 #include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
const int prime = ; struct Snow
{
int leg[];
}snow[]; struct HashTable
{
struct Snow *data;
struct HashTable *next;
HashTable()
{
next = NULL;
}
}; struct HashTable *Hash[prime]; bool clockwise(const struct Snow &a, const struct Snow &b)
{
for(int i = , j; i < ; i++)
{
if(a.leg[i] == b.leg[])
{
for(j = ; j < ; j++)
{
if(a.leg[(i+j)%] != b.leg[j])
break;
}
if(j >= )return ;
}
}
return ;
} bool counterclockwise(const struct Snow &a, const struct Snow &b)
{
for(int i = , j; i < ; i++)
{
if(a.leg[i] == b.leg[])
{
for(j = ; j < ; j++)
{
if(a.leg[(i+j)%] != b.leg[-j])
break;
}
if(j >= )return ;
}
}
return ;
} bool hash_insert(int key, struct Snow *snow_ptr)
{
if(Hash[key] == NULL)
{
Hash[key] = new HashTable;
Hash[key]->data = snow_ptr;
}
else
{
struct HashTable *p = Hash[key];
while(p != NULL)
{
if(clockwise(*p->data, *snow_ptr) || counterclockwise(*p->data, *snow_ptr))
return ;
else p = p->next;
}
p = new HashTable;
p->data = snow_ptr;
}
return ;
} int main()
{
int n, key;
while(scanf("%d", &n) != EOF)
{
bool ok = ;
memset(Hash, , sizeof(Hash));
for(int i = ; i < n; i++)
{
key = ;
for(int j = ; j < ; j++)
{
scanf("%d", &snow[i].leg[j]);
key += snow[i].leg[j];
}
key %= prime;
if(!ok)
{
ok = hash_insert(key, &snow[i]);
}
}
printf("%s\n", ok ? "Twin snowflakes found." : "No two snowflakes are alike.");
}
return ;
}

POJ 3349 Snowflake Snow Snowflakes Hash的更多相关文章

  1. POJ 3349 Snowflake Snow Snowflakes (Hash)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 48646   Accep ...

  2. 哈希—— POJ 3349 Snowflake Snow Snowflakes

    相应POJ题目:点击打开链接 Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions ...

  3. POJ 3349 Snowflake Snow Snowflakes(简单哈希)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 39324   Accep ...

  4. POJ 3349 Snowflake Snow Snowflakes

    Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27598 Accepted: ...

  5. [ACM] POJ 3349 Snowflake Snow Snowflakes(哈希查找,链式解决冲突)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 30512   Accep ...

  6. poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 30529   Accep ...

  7. [poj 3349] Snowflake Snow Snowflakes 解题报告 (hash表)

    题目链接:http://poj.org/problem?id=3349 Description You may have heard that no two snowflakes are alike. ...

  8. hash应用以及vector的使用简介:POJ 3349 Snowflake Snow Snowflakes

    今天学的hash.说实话还没怎么搞懂,明天有时间把知识点总结写了,今天就小小的写个结题报告吧! 题意: 在n (n<100000)个雪花中判断是否存在两片完全相同的雪花,每片雪花有6个角,每个角 ...

  9. POJ 3349 Snowflake Snow Snowflakes(哈希)

    http://poj.org/problem?id=3349 题意 :分别给你n片雪花的六个角的长度,让你比较一下这n个雪花有没有相同的. 思路:一开始以为把每一个雪花的六个角的长度sort一下,然后 ...

随机推荐

  1. android之自定义ViewGroup和自动换行的布局的实现

    viewgroup简单说就是可以装view的view.今天遇到一个问题,就是需要一个可以自动根据一行中view的宽度自动换行的布局,网上 找了下,没有相关的例子,但是找到了思路:自定义一个viewgr ...

  2. cocos2d-x 3.0 Armature jsb 初体验

    有段时间没有写游戏代码了,这回来主要任务是要用jsb构建一个aprg动作游戏,看到3.0官方已经绑定好了armature的js函数,先来体验一把 3.0新建项目比2.2方便了很多,在终端运行tools ...

  3. ltrace killed by SIGTRAP

    [Ltrace-devel] ltrace stucks with pthreads Heiko Carstens heiko.carstens at de.ibm.comFri Apr 14 11: ...

  4. jQuery DOM XSS漏洞

    jQuery DOM XSS漏洞http://automationqa.com/forum.php?mod=viewthread&tid=2943&fromuid=21

  5. WPF Command命令模式

    //定义接口 public interface IView { bool IsChanged { get; set; } void SetBinding(); void Clear(); } //定义 ...

  6. LSJ_NHibernate第一章 NHibernate介绍

    前言: 说起NHibernate网上资料真不少,但用的人却并不多,说起java的SSH框架大家可能就知道了,这里的H指的就是Hibernate,一款好用的ORM框架,在.net重写了这款好用的框架,名 ...

  7. A Swift Tour(3) - Functions and Closures

    Functions and Closures 使用func来声明函数,通过括号参数列表的方式来调用函数,用 --> 来分割函数的返回类型,参数名和类型,例如: func greet(name: ...

  8. 将vs2012的项目转化成VS2010

    vs2012生成的项目,如何在只装有VS2010的电脑上打开, 步骤: 1.打开一个记事本,将你的Vs2012生成的项目解决方案文件(.sln文件)文件拖到记事本中 2.修改前两行  Microsof ...

  9. 在 APK 中找不到对应的 securityguard***.so 文件或者 so 文件载入出错

    1.解压查看你的apk是不是将so打进去了,如果没有打进入查看自己的jnilibs是否指定 2.查看手机是否是64的手机.因为百川的安全包没有64的支持,所以目前是以兼容包的形式给的包.如果第三方有6 ...

  10. Angularjs中使用$location获取url参数时,遇到的坑~~~

    今天在开发时候,需要用到Angularjs1.4.6获取url参数,网上查了一下,有部分文章提到用$location来获取.大致方法如下 var app = angular.module('myApp ...