A - SnowflakeSnowSnowflakes解题报告

原创 2012年03月23日 08:51:47
#include<stdio.h>
#include<memory.h>
const int MAX=50021;
int hash [50022][7],sel[50022],a[100001][7];
int main()
{
	int N,i,j,sum,o1,o3,k;
	
	memset(hash,0,sizeof(hash));
	memset(sel,0,sizeof(sel));

	scanf("%d",&N);

	for(i=0;i<N;i++)
		for(j=0;j<6;j++)
			scanf("%d",&a[i][j]); 
	o3=0;	
   for(i=0;i<N;i++) //*********算法实现*******
   {
	   sum=0;
	   for(j=0;j<6;j++)
		   sum+=a[i][j];
	   sum=sum%MAX;          //因为sum可能很大,所以对一个大素数取模,这样减小hash数列的范围。
	   if(sel[sum]==0)
	   {
		   sel[sum]=1;
		   for(int k=0;k<6;k++)				 
				hash[sum][k]=a[i][k];   //sel数组用来判断此时hash数组上对应的是否已存在,不存在则记录1,且将此部分赋给hash数组。
	   }
	   else                      //如该位置上已存在,则比较是否相同
	   {
		   for(k=0;k<6;k++)
		   {
			   o1=0;
			   for(j=0;j<6;j++)
			       if(hash[sum][k]==a[i][j])
				   {
					   o1=1;
					   break;
				   }
               if(o1==0)
				   break;
		   }
		   
		   if(o1==1)
		   {
			   o3=1;
			   printf("Twin snowflakes found.\n");
			   break;
		   }
	   }
   }
   if(o3==0)
	   printf("No two snowflakes are alike.\n");
   return 0;
}



//题目大意就是找到两片相同的雪花!我发现只比较有没有完全相同长度的臂就可以了,不需要按时针顺序比较,可能是题目不严谨。

相关文章推荐

A - SnowflakeSnowSnowflakes解题报告(黄杰)

A - SnowflakeSnowSnowflakes Time Limit:4000MS     Memory Limit:65536KB     64bit IO Format:%I64d & ...

HDU2501解题报告

  • 2014年07月10日 10:44
  • 12KB
  • 下载

奇怪的电梯解题报告(广度优先搜索)

奇怪的电梯 Time Limit:10000MS  Memory Limit:65536K Total Submit:56 Accepted:33  Case Time Limit:1000...

HDU1019(2028)解题报告

  • 2014年07月11日 10:05
  • 555B
  • 下载

2014NOIP普及组解题报告

  • 2015年01月30日 10:06
  • 39KB
  • 下载

HDU 2509解题报告

Be the Winner Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

10年noip解题报告!

  • 2007年08月21日 20:01
  • 2.81MB
  • 下载

组队赛4解题报告(组合数学+禁位排列+容斥原理+精度进位+贪心背包+矩阵快速幂)

B题:ZOJ 3687  链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4970 题意:在d天看不了c章,问复习的方案有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:A - SnowflakeSnowSnowflakes解题报告
举报原因:
原因补充:

(最多只允许输入30个字)