POJ 3349
来源:互联网 发布:库存软件哪个好 编辑:程序博客网 时间:2024/05/16 06:21
本题哈希,但judge的时间还是很长,哎;
#include <stdio.h>#include <memory.h>#define maxn 100003struct s{int arms[6];int amount;}snow[maxn];int head[maxn],next[maxn];//maxn大小的哈希表int judge(int *a,int *b){int i,j,ok=1,t=0;int k[6];for(i=0;i<6&&ok;i++){for(j=0;j<6;j++){if(a[i]==b[j]){ok=0;k[t++]=j;}}}if(t==0) return 0;for(;t>=0;t--){for(i=1;i<6;i++)//顺时针{if(a[i]!=b[(i+k[t])%6]) break;}if(i==6) return 1;for(i=1;i<6;i++)//逆时针{if(a[i]!=b[(k[t]-i+6)%6]) break;}if(i==6) return 1;}return 0;}int insert(int i){int loc=(snow[i].amount)%maxn;//哈希函数int u=head[loc];while(u!=-1){if((snow[u].amount==snow[i].amount)&&judge(snow[u].arms,snow[i].arms)) return 1;u=next[u];} next[i]=head[loc];head[loc]=i;return 0;}int main(){int n;while(scanf("%d",&n)!=EOF){int flag=0;memset(head,-1,sizeof(head));int i,j;for(i=0;i<n;i++){snow[i].amount=0;for(j=0;j<6;j++){scanf("%d",&snow[i].arms[j]);snow[i].amount=snow[i].amount+snow[i].arms[j];//key关键字}if(insert(i)) flag=1;}if(flag) printf("Twin snowflakes found.\n");else printf("No two snowflakes are alike.\n");}return 0;}
- POJ 3349
- POJ 3349
- poj 3349
- poj 3349
- poj 3349
- POJ 3349
- POJ--3349
- poj.3349
- poj.3349
- poj-3349
- poj 3349
- POJ 3349
- poj 3349
- POJ 3349
- poj 3349
- POJ 3349 (hash)
- poj-3349 SnowflakeSnowSnowflakes
- poj-3349-哈希
- keystone api操作
- 坚强的毅力需要源动力
- glance api操作
- Python 元组、列表、字典、文件
- python中 *arg,**arg
- POJ 3349
- kvm 命令行参数
- UBUNTU12.04安装笔记
- kvm IO优化的措施, KVM优化措施
- 充分利用通过、网络信息技术,实现分级教学
- 版本控制系统
- 版本控制系统
- command not found
- Android提高第二十一篇之MediaPlayer播放网络视频