POJ3349
来源:互联网 发布:淘宝红酒面膜 编辑:程序博客网 时间:2024/05/16 19:12
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#define mod 1313
using namespace std;
struct node
{
int len[10];
};
bool cmp(node &a,node &b)
{
int start[6],i,j,num=0;
for(i=0;i<6;i++)
if(a.len[0]==b.len[i])
{
start[num++]=i;//记录每一个与a.len[0]相同的元素的位置;
}
bool flag;
for(i=0;i<num;i++)
{
flag=true;
for(j=1;j<6;j++)
if(a.len[j]!=b.len[(start[i]+j)%6])
{
flag=false;
break;
}
if(flag)
return true ;
flag=true;
for(j=1;j<6;j++)
if(a.len[j]!=b.len[(start[i]-j+6)%6])//逆时针/
{
flag=false;
break;
}
if(flag)
return true;
}
return false;
}
int main()
{
int n,i,j,k;
int a = 0, l = 0;
while(scanf("%d",&n)!=EOF)
{
vector<node>snow[mod + 1];
node snownow;
bool flag = false;
int cnt = 0;
for( i = 0; i<n; i++)
{
int ans = 0;
int sum = 0;
for( j = 0; j < 6; j++)
{
scanf("%d",&snownow.len[j]);
sum += snownow.len[j];
}
ans = sum%mod;
if(!flag)
{
for(k = 0; k < snow[ans].size() ; k++)
if( cmp(snow[ans][k],snownow))
{
flag = true;
break;
}
}
if(!flag)
snow[ans].push_back(snownow);
}
if(flag)
printf("Twin snowflakes found.\n");
else
printf("No two snowflakes are alike.\n");
}
return 0;
}
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#define mod 1313
using namespace std;
struct node
{
int len[10];
};
bool cmp(node &a,node &b)
{
int start[6],i,j,num=0;
for(i=0;i<6;i++)
if(a.len[0]==b.len[i])
{
start[num++]=i;//记录每一个与a.len[0]相同的元素的位置;
}
bool flag;
for(i=0;i<num;i++)
{
flag=true;
for(j=1;j<6;j++)
if(a.len[j]!=b.len[(start[i]+j)%6])
{
flag=false;
break;
}
if(flag)
return true ;
flag=true;
for(j=1;j<6;j++)
if(a.len[j]!=b.len[(start[i]-j+6)%6])//逆时针/
{
flag=false;
break;
}
if(flag)
return true;
}
return false;
}
int main()
{
int n,i,j,k;
int a = 0, l = 0;
while(scanf("%d",&n)!=EOF)
{
vector<node>snow[mod + 1];
node snownow;
bool flag = false;
int cnt = 0;
for( i = 0; i<n; i++)
{
int ans = 0;
int sum = 0;
for( j = 0; j < 6; j++)
{
scanf("%d",&snownow.len[j]);
sum += snownow.len[j];
}
ans = sum%mod;
if(!flag)
{
for(k = 0; k < snow[ans].size() ; k++)
if( cmp(snow[ans][k],snownow))
{
flag = true;
break;
}
}
if(!flag)
snow[ans].push_back(snownow);
}
if(flag)
printf("Twin snowflakes found.\n");
else
printf("No two snowflakes are alike.\n");
}
return 0;
}
0 0
- poj3349
- poj3349
- POJ3349
- POJ3349
- poj3349
- poj3349
- POJ3349
- POJ3349
- poj3349
- poj3349
- POJ3349
- poj3349
- POJ3349
- poj3349
- POJ3349 哈希表
- POJ3349 #no
- poj3349-hash
- poj3349--Hash
- c++习题1_A_长方体继承自矩形
- 8张图理解Java
- strcpy() 与 ‘\0’
- 关于javascript 原型(prototype) 的实验和结论
- session学习小结
- POJ3349
- C# 初始化顺序
- 老爸辛苦了!当年,你爸爸拿啥揍你
- There are two crossword
- 深入理解C语言指针的奥秘
- 【Gateway】11g常见错误
- 日志文件自动压缩
- MFC截图程序的实现(四)
- 慢启动与拥塞窗口