博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3349 Snowflake Snow Snowflakes
阅读量:6151 次
发布时间:2019-06-21

本文共 1612 字,大约阅读时间需要 5 分钟。

poj 3349 

雪花是否相同

#include
#include
#include
#include
using namespace std;#define size 100010int arr[size][6];int n;struct node{ int key; node *next;};node HashTable[size];node HashPool[size];int index = 0;node *getNewNode(){ return &HashPool[index++];}void insert(int key,node *newNode){ node *tmp = &HashTable[key]; newNode->next = tmp->next; tmp->next = newNode;}bool isSame(int a,int b){ sort(arr[a],arr[a]+6); sort(arr[b],arr[b]+6); for(int i = 0; i < 6;i++) { if(arr[a][i] != arr[b][i]) return false; } return true;}int getKey(int a[6]){ int sum = 0; for(int i = 0; i < 6; i++) sum += a[i]; return sum%99991;}bool search(int key,int i){ node *tmp = &HashTable[key]; tmp = tmp -> next; while(tmp != NULL) { int j = tmp->key; tmp = tmp->next; if(isSame(i,j)) return true; } return false;}int main(){ scanf("%d",&n); for(int i = 0; i < n; i++) { for(int j = 0; j < 6; j++) { scanf("%d",&arr[i][j]); } } for(int i = 0; i < n ;i++) { int key = getKey(arr[i]); bool flag = search(key,i); if(flag) { printf("%s\n", "Twin snowflakes found."); return 0; } else { node *newNode = getNewNode(); newNode->key = i; insert(key,newNode); } } printf("%s\n", "No two snowflakes are alike."); return 0;}

 

转载于:https://www.cnblogs.com/zyqBlog/p/8033850.html

你可能感兴趣的文章
js中var、let、const的区别
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>
Microsoft Licenses Flash Lite for Windows Mobile Users
查看>>
HDOJ 2020 绝对值排序
查看>>
HDOJ/HDU 2560 Buildings(嗯~水题)
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
[20170628]12C ORA-54032.txt
查看>>
linux运维人员的成功面试总结案例分享
查看>>
Windows DHCP Server基于MAC地址过滤客户端请求实现IP地址的分配
查看>>
命令查询每个文件文件数
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
RAC表决磁盘管理和维护
查看>>
Apache通过mod_php5支持PHP
查看>>
发布一个TCP 吞吐性能测试小工具
查看>>