http://poj.org/problem?id=3349

题意:

给出n片雪花留个角的长度,要求判断是否有一样的雪花。

思路:

Hash表的应用。

首先将每个雪花所有角的总长计算出来,如果两片雪花相同的话那么总长也是相同的,然后加入vector容器当中,最后遍历vector数组,如果某个总长有大于1的雪花数,则有可能存在相同的雪花,此时需要比较这些雪花。

 #include <iostream>
#include <stdio.h>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = ;
const int prime = ; struct node
{
int len[];
}snow; vector<node>hs[prime]; bool judge(node a, node b)
{
for (int i = ; i<; i++)
{
if (a.len[] == b.len[i] && a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ] &&
a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ])
return true;//固定a,顺时针比较
if (a.len[] == b.len[i] && a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ] &&
a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ] && a.len[] == b.len[(i + ) % ])
return true;//固定a, 逆时针比较
}
return false;
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int n;
cin >> n;
while (n--)
{
for (int i = ; i<; i++)
scanf("%d", &snow.len[i]);
int sum = (snow.len[] + snow.len[] + snow.len[] + snow.len[] + snow.len[] + snow.len[]) % prime;
hs[sum].push_back(snow);
}
for (int i = ; i<prime; i++)
if (hs[i].size()>) //可能有相同的雪花
{
for (int j = ; j<hs[i].size(); j++)
for (int k = j + ; k<hs[i].size(); k++)
{
if (judge(hs[i][j], hs[i][k]))
{
printf("Twin snowflakes found.");
return ;
}
}
}
printf("No two snowflakes are alike.");
return ;
}

UVa 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(简单哈希)

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

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

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

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

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

  5. POJ3349 Snowflake Snow Snowflakes (hash

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

  6. POJ 3349 Snowflake Snow Snowflakes(哈希)

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

  7. POJ 3349 Snowflake Snow Snowflakes (哈希表)

    题意:每片雪花有六瓣,给出n片雪花,六瓣花瓣的长度按顺时针或逆时针给出,判断其中有没有相同的雪花(六瓣花瓣的长度相同) 思路:如果直接遍历会超时,我试过.这里要用哈希表,哈希表的关键码key用六瓣花瓣 ...

  8. POJ - 3349 Snowflake Snow Snowflakes (哈希)

    题意:给定n(0 < n ≤ 100000)个雪花,每个雪花有6个花瓣(花瓣具有一定的长度),问是否存在两个相同的雪花.若两个雪花以某个花瓣为起点顺时针或逆时针各花瓣长度依次相同,则认为两花瓣相 ...

  9. POJ 3349 Snowflake Snow Snowflakes(哈希表)

    题意:判断有没有两朵相同的雪花.每朵雪花有六瓣,比较花瓣长度的方法看是否是一样的,如果对应的arms有相同的长度说明是一样的.给出n朵,只要有两朵是一样的就输出有Twin snowflakes fou ...

随机推荐

  1. vue.set的用法

    Vue.set(this.food,'count',1) //就是给this.food里面添加一个count的属性,并且赋值为1

  2. HTML5-Canvas 初认识

    1. 理解canvas canvas其实是HTML5中一个新增加的标签,对于canvas标签本身并没有什么非常强大的属性(width.height.id.class.style),仅仅作为一个画布存在 ...

  3. ssm返回jsonp数据格式

    为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数 ...

  4. 浙大 PAT 乙级 1001-1075 目录索引

    1001. 害死人不偿命的(3n+1)猜想 1002. 写出这个数 1003. 我要通过! 1004. 成绩排名 1005. 继续(3n+1)猜想 1006. 换个格式输出整数 1007. 素数对猜想 ...

  5. zabbix 微信报警脚本

    不知道是什么原因直接用Python脚本zabbix无法执行脚本,需要一个shell来启动 #! /bin/bash userid=$ content=$ python /data/zabbix/ale ...

  6. [LeetCode] 675. Cut Off Trees for Golf Event_Hard tag: BFS

    You are asked to cut off trees in a forest for a golf event. The forest is represented as a non-nega ...

  7. Locust性能测试4-参数关联

    前言 前面[Locust性能测试2-先登录场景案例]讲了登录的案例,这种是直接传账号和密码就能登录了,有些登录的网站会复杂一点, 需要先从页面上动态获取参数,作为登录接口的请求参数,如[学信网:htt ...

  8. background 背景图片 在IE8中不显示解决方法

    我给ul加了一个背景图片 background 火狐 ie9 ch都显示.唯独在IE8中不显示 之前的样式代码 background: url( rgba(, , , ); 在ie8中改成 backg ...

  9. byte、二进制、十进制数值之间的转换

    项目中遇到将字节数据文件解析成可展示的十进制,经过调查和测试得出下面的转换方法 1.将byte值转换为二进制字符串: byte byteValue = -1; // 将byte转换为8位二进制字符串 ...

  10. MyEclipse 相关设置

    1. MyElipse复制项目后,修改项目的发布名称的方式.右击你的项目,选择 properties -- > MyElipse -- > web,然后修改名称即可. 2. IDE查看源代 ...