POJ 3349 Snowflake Snow Snowflakes
/*
哈希第一题啊..! 谢谢 http://www.cnblogs.com/Dario67/archive/2011/04/09/2010724.html 的博主
这题投机取巧了,判断是否相等 直接排序 比较相等 混过去了 实际题目意思不是这样的 呵呵
*/
#include <stdio.h>
#include <stdlib.h>#define M 99991 //大素数 这是怎么来的我还不清楚
#define MAXN 100000
struct flake{int arm[6];struct flake *next; //拉链法处理冲突void init(){next = NULL;}
}snow[MAXN];int hash(int a[]){return ((a[0] + a[2] + a[4]) & (a[1] + a[3] + a[5])) % M; //discuss里复制的...
}
bool same(int a[], int b[]){ for(int i = 0; i < 6; ++i){if(a[i] != b[i])return false;}return true;
}
bool search(int idx, int arm[]){flake *p = &snow[idx];p = p -> next;while( p ){if( same(p -> arm, arm)){return true;}p = p -> next;}return false;
}
void insert(int idx, flake *newsnow){flake *p = &snow[idx];newsnow -> next = p -> next;p -> next = newsnow;
}int cmp(const void *a, const void *b){return *(int*)a - *(int*)b;
}
int main(){int n;bool find = false;flake *nsnow;for(int i = 0; i < MAXN; ++i)snow[i].init();scanf("%d",&n);for(int i = 0; i < n; ++i){nsnow = (flake*)malloc(sizeof(flake));for(int j = 0; j < 6; ++j){scanf("%d",&nsnow -> arm[j]);}qsort(nsnow -> arm, 6, sizeof(int), cmp);int idx = hash(nsnow -> arm); //找到散列值//printf("%d\n",idx);if(!search(idx, nsnow -> arm)){ //没插入过insert(idx, nsnow);} else {printf("Twin snowflakes found.\n");return 0;}}printf("No two snowflakes are alike.\n");return 0;
}
转载于:https://www.cnblogs.com/lxf90/archive/2011/04/12/2013175.html
POJ 3349 Snowflake Snow Snowflakes相关推荐
- POJ 3349.Snowflake Snow Snowflakes
题目:http://poj.org/problem?id=3349 AC代码(C++): #include <iostream> #include <algorithm> #i ...
- ***POJ 3349 Snowflake Snow Snowflakes(哈希)
第一次学习哈希,基本模仿题解写的 思路:首先这题时间比较紧,所以只能用加法求余来构造哈希表,然后容易出现冲突,所以冲突之后还需要判断是否为同种. 并且雪花有顺逆时针,所以需要两种时针方向,每种时针方向 ...
- POJ 3349 Snowflake Snow Snowflakes hash
题意:每个雪花有六个角,每个角用一个数字表示.输入n个雪花,若存在两个雪花相等则输出Twin snowflakes found.否则输出No two snowflakes are alike. 题解: ...
- UVa 3349 Snowflake Snow Snowflakes(Hash)
http://poj.org/problem?id=3349 题意: 给出n片雪花留个角的长度,要求判断是否有一样的雪花. 思路: Hash表的应用. 首先将每个雪花所有角的总长计算出来,如果两片雪花 ...
- 【POJ No. 3349】 雪花 Snowflake Snow Snowflakes
[POJ No. 3349] 雪花 Snowflake Snow Snowflakes POJ 题目地址 [题意] 你可能听说过没有两片雪花是一样的,请编写一个程序来确定这是否是真的. 已知每片雪花6 ...
- Snowflake Snow Snowflakes(哈希表的应用)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27312 Accep ...
- Snowflake Snow Snowflakes
文章目录 Snowflake Snow Snowflakes Snowflake Snow Snowflakes 题意: 给定一个n个六边形雪花,判定是否存在相同的 分析: 链表hash hash 值 ...
- Snowflake Snow Snowflakes(hash)
F - Snowflake Snow Snowflakes Time Limit:4000MS Memory Limit:65536KB 64bit IO Format:%I64d & ...
- POJ3349 Snowflake Snow Snowflakes(哈希表)
题目链接http://poj.org/problem?id=3349 题意是说,有n片雪花,每片雪花都是有6个角,给出每片雪花每个角的长度,问里面有没有一样的雪花(给出数据的顺序是没有确定的). 虽然 ...
最新文章
- OpenCV中的TermCriteria模板类
- 单片机at指令解析 开源_分享Github上几个开源单片机硬件驱动库
- 1、深入理解计算机系统 笔记,系统综述
- 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
- Qt 5.14 安装,windows10系统,64位,详细步骤,非常简单!
- panel垂直滚动条占用宽度_南开区垂直车库门车库门安装价格
- PHP直接输出一张图片
- 分享一个不错的Windows软件——Fliqlo
- mysql技术blog_Mysql技术 - 包子博客 _ 关注互联网前端、开发、SEO、移动互联网应用技术...
- 夺标查询和联合查询有什么区别么
- HDU 4540 威威猫系列故事——打地鼠(DP)
- [转]GNSS NMEA-0183协议解析
- VMware虚拟机ubuntu ros安装摄像头驱动
- 【犯二记录】链表结点换位引发的思维僵化,太可怕,智商 == 0
- XCode11上传ipa到AppStoreConnect
- vyos-vyatta在ospf和bgp之间路由重发布使用 打tag形式进行路由过滤
- php微信公众平台session处理,php微信公众开发平台如何使用session
- 2017苹果开发者大会看点汇总
- 梦幻西游手游版找不到服务器,梦幻西游手游无法选择服务器怎么办 解决方法...
- BERT6mA:使用基于深度学习的方法预测DNA N6甲基腺嘌呤位点
热门文章
- js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
- python 服务监控_python实现监控某个服务 服务崩溃即发送邮件报告
- 2019年湘潭大学程序设计竞赛(重现赛)
- linux如何修改网卡序号,CentOS双网卡时改变网卡编号和配置静态路由的方法
- 探究 Java 应用的启动速度优化
- 云通信产品运营带你玩转号码隐私保护
- 借力阿里云数据中台,日播集团“数”识消费者
- Code Review效率低?来试试智能语法服务
- 如何让一套代码适配所有iOS设备尺寸?
- 远程研发能有多高效?手淘新版本上线只用了5天!