POJ 3349 Snowflake Snow Snowflakes Hash
题目链接: 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的更多相关文章
- POJ 3349 Snowflake Snow Snowflakes (Hash)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 48646 Accep ...
- 哈希—— POJ 3349 Snowflake Snow Snowflakes
相应POJ题目:点击打开链接 Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions ...
- POJ 3349 Snowflake Snow Snowflakes(简单哈希)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 39324 Accep ...
- POJ 3349 Snowflake Snow Snowflakes
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27598 Accepted: ...
- [ACM] POJ 3349 Snowflake Snow Snowflakes(哈希查找,链式解决冲突)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30512 Accep ...
- poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30529 Accep ...
- [poj 3349] Snowflake Snow Snowflakes 解题报告 (hash表)
题目链接:http://poj.org/problem?id=3349 Description You may have heard that no two snowflakes are alike. ...
- hash应用以及vector的使用简介:POJ 3349 Snowflake Snow Snowflakes
今天学的hash.说实话还没怎么搞懂,明天有时间把知识点总结写了,今天就小小的写个结题报告吧! 题意: 在n (n<100000)个雪花中判断是否存在两片完全相同的雪花,每片雪花有6个角,每个角 ...
- POJ 3349 Snowflake Snow Snowflakes(哈希)
http://poj.org/problem?id=3349 题意 :分别给你n片雪花的六个角的长度,让你比较一下这n个雪花有没有相同的. 思路:一开始以为把每一个雪花的六个角的长度sort一下,然后 ...
随机推荐
- java实现window phone推送通知
package com.windowphone.text; import java.io.IOException;import java.io.OutputStream;import java.net ...
- javascript笔记08:javascript的if...else语句
案例代码如下: <!DOCTYPE html> <html> <body> <p>点击这个按钮,获得基于时间的问候.</p> <but ...
- 基于anyrtc的sdk实现直播连麦互动
基于anyrtc的sdk实现直播连麦互动 前言 1.由于粘贴了较大的代码,造成内容比较长,可能会花费您较长的时间. 2.项目里面没有做权限判断,所以如果发现有页面发生崩溃可能是权限没有打开,请打开权限 ...
- 用ModelSim仿真SDRAM操作
之前写了两篇关于Modelsim仿真的blog,其中模块管脚的命名可能让人觉得有些奇怪,其实不然,之前的两篇内容都是为了仿真SDRAM操作做铺垫的. 由于SDRAM的仿真过程相对比较复杂,也比较繁琐. ...
- poj 1007 DNA Sorting
DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 95437 Accepted: 38399 Des ...
- R-大数据分析挖掘(3-R作图)
R语言绘图功能: 提供实例: demo(graphics)
- order by跟group by 跟having(2)
- 从URI中获取实际的文件path
如题,经常用在onActivityResult方法中解析图片等各种地址,因为Android 4.4之后google更改了对应的方法. /** * Get a file path from a Uri. ...
- 通过javascript库JQuery实现页面跳转功能代码
通过javascript库JQuery实现页面跳转功能代码的四段代码实例如下. 实例1: 1 2 3 4 $(function(){ var pn = $("#gotopagenum&quo ...
- 学习笔记_Java_day13_JSTL标签库(1、2、3、4、5、6、7、8)
1.一种标签语言 day13 l JSTL标签库(重点) l 自定义标签(理解) l MVC设计模式(重点中的重点) l Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL ...