/*
哈希第一题啊..! 谢谢 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相关推荐

  1. POJ 3349.Snowflake Snow Snowflakes

    题目:http://poj.org/problem?id=3349 AC代码(C++): #include <iostream> #include <algorithm> #i ...

  2. ***POJ 3349 Snowflake Snow Snowflakes(哈希)

    第一次学习哈希,基本模仿题解写的 思路:首先这题时间比较紧,所以只能用加法求余来构造哈希表,然后容易出现冲突,所以冲突之后还需要判断是否为同种. 并且雪花有顺逆时针,所以需要两种时针方向,每种时针方向 ...

  3. POJ 3349 Snowflake Snow Snowflakes hash

    题意:每个雪花有六个角,每个角用一个数字表示.输入n个雪花,若存在两个雪花相等则输出Twin snowflakes found.否则输出No two snowflakes are alike. 题解: ...

  4. UVa 3349 Snowflake Snow Snowflakes(Hash)

    http://poj.org/problem?id=3349 题意: 给出n片雪花留个角的长度,要求判断是否有一样的雪花. 思路: Hash表的应用. 首先将每个雪花所有角的总长计算出来,如果两片雪花 ...

  5. 【POJ No. 3349】 雪花 Snowflake Snow Snowflakes

    [POJ No. 3349] 雪花 Snowflake Snow Snowflakes POJ 题目地址 [题意] 你可能听说过没有两片雪花是一样的,请编写一个程序来确定这是否是真的. 已知每片雪花6 ...

  6. Snowflake Snow Snowflakes(哈希表的应用)

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

  7. Snowflake Snow Snowflakes

    文章目录 Snowflake Snow Snowflakes Snowflake Snow Snowflakes 题意: 给定一个n个六边形雪花,判定是否存在相同的 分析: 链表hash hash 值 ...

  8. Snowflake Snow Snowflakes(hash)

    F - Snowflake Snow Snowflakes Time Limit:4000MS     Memory Limit:65536KB     64bit IO Format:%I64d & ...

  9. POJ3349 Snowflake Snow Snowflakes(哈希表)

    题目链接http://poj.org/problem?id=3349 题意是说,有n片雪花,每片雪花都是有6个角,给出每片雪花每个角的长度,问里面有没有一样的雪花(给出数据的顺序是没有确定的). 虽然 ...

最新文章

  1. OpenCV中的TermCriteria模板类
  2. 单片机at指令解析 开源_分享Github上几个开源单片机硬件驱动库
  3. 1、深入理解计算机系统 笔记,系统综述
  4. 计算机无法打开策略,Win10提示“无法打开此计算机上的组策略对象”如何解决...
  5. Qt 5.14 安装,windows10系统,64位,详细步骤,非常简单!
  6. panel垂直滚动条占用宽度_南开区垂直车库门车库门安装价格
  7. PHP直接输出一张图片
  8. 分享一个不错的Windows软件——Fliqlo
  9. mysql技术blog_Mysql技术 - 包子博客 _ 关注互联网前端、开发、SEO、移动互联网应用技术...
  10. 夺标查询和联合查询有什么区别么
  11. HDU 4540 威威猫系列故事——打地鼠(DP)
  12. [转]GNSS NMEA-0183协议解析
  13. VMware虚拟机ubuntu ros安装摄像头驱动
  14. 【犯二记录】链表结点换位引发的思维僵化,太可怕,智商 == 0
  15. XCode11上传ipa到AppStoreConnect
  16. vyos-vyatta在ospf和bgp之间路由重发布使用 打tag形式进行路由过滤
  17. php微信公众平台session处理,php微信公众开发平台如何使用session
  18. 2017苹果开发者大会看点汇总
  19. 梦幻西游手游版找不到服务器,梦幻西游手游无法选择服务器怎么办 解决方法...
  20. BERT6mA:使用基于深度学习的方法预测DNA N6甲基腺嘌呤位点

热门文章

  1. js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
  2. python 服务监控_python实现监控某个服务 服务崩溃即发送邮件报告
  3. 2019年湘潭大学程序设计竞赛(重现赛)
  4. linux如何修改网卡序号,CentOS双网卡时改变网卡编号和配置静态路由的方法
  5. 探究 Java 应用的启动速度优化
  6. 云通信产品运营带你玩转号码隐私保护
  7. 借力阿里云数据中台,日播集团“数”识消费者
  8. Code Review效率低?来试试智能语法服务
  9. 如何让一套代码适配所有iOS设备尺寸?
  10. 远程研发能有多高效?手淘新版本上线只用了5天!