哈希 poj3349 Snowflake Snow Snowflakes
来源:互联网 发布:数据库分库分表策略 编辑:程序博客网 时间:2024/06/07 12:16
题目大意:有n个雪花,给出每个雪花六个边的长度,问是否存在两个相同的雪花。
hash函数记为所有边的和就可以,判断时 如果两个hash值相同,那么把雪花做旋转 翻转去比较即可
(实际上比较的部分像我这么写(用sort)是不对的,但AC了也懒得改了···)
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include <algorithm>#define ll long long#define eps 1e-8#define ms(x,y) (memset(x,y,sizeof(x)))#define fr(i,x,y) for(int i=x;i<=y;i++)using namespace std;const int M2=999983,maxn=1e6+10;struct snow{ int len[7],key;}p[maxn];int key1(snow a){ int s=0; fr(i,1,6){s+=a.len[i];s%=M2;} return s;}bool cmp(snow a,snow b){return a.key<b.key;}bool eq(snow a,snow b){ fr(i,1,6)if(a.len[i]!=b.len[i])return 0; return 1;}snow mov(snow a){ int t=a.len[6]; for(int i=6;i>=2;i--)a.len[i]=a.len[i-1]; a.len[1]=t; return a;}snow turn(snow a){ fr(i,1,3) swap(a.len[i],a.len[7-i]); return a;}bool is(snow a,snow b){ fr(i,1,6) { //fr(j,1,6)cout<<a.len[j]<<' ';cout<<endl; if(eq(a,b))return 1; a=mov(a); } a=turn(a); fr(i,1,6) { //fr(j,1,6)cout<<a.len[j]<<' ';cout<<endl; if(eq(a,b))return 1; a=mov(a); } return 0;}int main(){ int n; cin>>n; fr(i,1,n) { fr(j,1,6)scanf("%d",&p[i].len[j]); p[i].key=key1(p[i]); } sort(p+1,p+n+1,cmp); fr(i,1,n-1) { if(p[i].key==p[i+1].key) { if(is(p[i],p[i+1])){cout<<"Twin snowflakes found."<<endl;return 0;} } } cout<<"No two snowflakes are alike."<<endl; return 0;}
0 0
- 哈希 poj3349 Snowflake Snow Snowflakes
- poj3349 Snowflake Snow Snowflakes
- POJ3349 Snowflake Snow Snowflakes
- poj3349 Snowflake Snow Snowflakes
- Snowflake Snow Snowflakes poj3349
- poj3349 Snowflake Snow Snowflakes
- POJ3349--Snowflake Snow Snowflakes
- poj3349 Snowflake Snow Snowflakes
- POJ3349-Snowflake Snow Snowflakes
- POJ3349---Snowflake Snow Snowflakes
- poj3349 Snowflake Snow Snowflakes
- POJ3349--Snowflake Snow Snowflakes(哈希)
- POJ3349--Snowflake Snow Snowflakes--哈希表
- POJ3349 Snowflake Snow Snowflakes(hash)
- POJ3349 Snowflake Snow Snowflakes(hash)
- POJ3349 Snowflake Snow Snowflakes 自己写个哈希模板
- poj3349-Snowflake Snow Snowflakes,字符串哈希
- poj3349--Snowflake Snow Snowflakes(hash)
- 性能测试(1)
- 第一个实际项目经验
- struts2指定欢迎页面为action请求
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第6章 Linux的档案权限与目录配置 笔记
- 关于sudo找不到命令
- 哈希 poj3349 Snowflake Snow Snowflakes
- OFBIZ分享:关于contronal.xml 文件中response的类型
- 8*8DCT、量化、zigzag扫描
- oracle表列约束
- MFC控件使用在项目上的总结
- [C++] 异常处理
- MYSQL多表查询
- android学习笔记---事件分发(下)
- Android中Service类onStartCommand