会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
c语言源码
POJ 3349 Snowflake Snow Snowflakes
简单hash
#include<stdio.h> #include<stdlib.h>; #include<algorithm> #define inf 100001 using namespace std; struct Edge{ int a[10],next; }edge[100100]; int a[10],head[100100],cnt; bool add(int * b){ int sum=0,i,j,p,q; for(i=0;i<6;i++) sum+=b[i]; int hash=sum%inf; for(i=head[hash];i;i=edge[i].next){ for(j=0;j<6;j++){ if(edge[i].a[j]==b[0]){ for(p=0,q=j;p<6;p++){ if(b[p]!=edge[i].a[q]) break; q=(q+1)%6; } if(p==6)return 1; for(p=0,q=j;p<6;p++){ if(b[p]!=edge[i].a[q]) break; q=(q-1+6)%6; } if(p==6)return 1; } } } ++cnt; for(i=0;i<6;i++) edge[cnt].a[i]=b[i]; edge[cnt].next=head[hash]; head[hash]=cnt; return 0; } int main(){ int i,j,n; scanf("%d",&n); bool flag=0; for(i=1;i<=n;i++){ for(j=0;j<6;j++){ scanf("%d",&a[j]); } if(flag)continue; if(add(a))flag=1; } if(flag) printf("Twin snowflakes found.\n"); else printf("No two snowflakes are alike.\n"); }
posted on
2012-02-18 11:06
c语言源码
阅读(
407
) 评论(
0
)
编辑
收藏
举报
刷新页面
返回顶部
导航
博客园
首页
新随笔
联系
订阅
管理
公告