/* 一个雪花是一个结构体,输入一个雪花先预处理一下 就是找出雪花的最小序列, 再用sort函数对雪花排序(利用运算符重载可以给结构体排序) 然后再找有没有重复的雪花 */ #include<cstdio> #include<algorithm> using namespace std; struct node { int a[6]; }xue[100010],term,term1,term2; bool operator < (const node &x,const node &y) { for(int i=0;i<5;i++)if(x.a[i]!=y.a[i])return x.a[i]<y.a[i]; return x.a[5]<y.a[5]; } bool operator == (const node &x,const node &y) { return((x.a[0]==y.a[0])&&(x.a[1]==y.a[1])&&(x.a[2]==y.a[2])&&(x.a[3]==y.a[3])&&(x.a[4]==y.a[4])&&(x.a[5]==y.a[5])); } int main() { int T,n,i,j,f,min,k; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<6;j++)scanf("%d",&term.a[j]);//输入一片雪花 xue[i]=term; for(j=0,min=(1<<31)-1;j<6;j++)if(term.a[j]<min)min=term.a[j];//找出最小的一枝 for(j=0;j<6;j++) if(term.a[j]==min)//找出最小的序列 { for(k=0;k<6;k++)term1.a[k]=term.a[(j+k)%6];//顺时针 if(term1<xue[i])xue[i]=term1; for(k=0;k<6;k++)term2.a[k]=term.a[(j-k+6)%6];//逆时针 if(term2<xue[i])xue[i]=term2; } } sort(xue,xue+n);//排序 for(f=0,i=1;i<n;i++) { if(xue[i]==xue[i-1])//有一样就的跳出 { f=1; break; } } if(f)printf("Twin snowflakes found.\n");//输出 else printf("No two snowflakes are alike.\n"); } return 0; }
相关推荐
南阳理工oj离线题库
南阳理工学院OJ第1版解题报告V1.0.pdf
南阳理工学院OJ_个人AC代码包(Java提交) 是Java初学者登堂入室的很好例子。
南阳理工学院stl练习场全部ac代码!
南阳理工ACM离线题库
哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案
西安理工大学学生在线实验系统编程题答案(超级详细)
基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,南阳OJ,杭电OJ ,北大OJ,浙大OJ.zip
山东理工大学2016级OJ进程,始于悦行,终于诚信。
趣味题:柱状图排序 西安理工大学学生在线实验系统 oj
湖南理工学院OJ的0-100题解.rar
在线OJ网址大全在线OJ网址大全在线OJ网址大全在线OJ网址大全
山东理工大学2016级OJ题目1833
山东理工大学2016级OJ题目1834
厦门理工学院软件工程重点课件,考试前抱佛脚可用。
实在写不出来,这个可以提供一些思路,慎重《copy》
搭建OJ平台的工具,方便大家搭建自己的OJ,建议大家使用ubuntu14.04版本,比较稳定
OJ习题.zip
这是洛谷OJ题库导出文件,希望大家下载看看
西南科技大学OJ题答案西南科技大学OJ题答案西南科技大学OJ题答案西南科技大学OJ题答案西南科技大学OJ题答案