Snowflake Snow Snowflakes POJ - 3349 Hash
题意:一个雪花有六个角 给出N个雪花 判断有没有相同的(可以随意旋转)
参考:https://blog.csdn.net/alongela/article/details/8245005
注意:参考的博客的写法有问题 不知道POJ为什么没有卡掉
例如 数据 1
1 1 1 1 1 1
如果用这个博客的写法 等于自己和自己比了 输出的是yes
只要稍微改一下 改成比完之后插入key就能解决了
疑问: manx=1000000+10会T 改成1200000+10才能过不知道为什么
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=;
const int MOD=;
int HashTable[maxn];
int cur=;
struct Node{
int num[];
int next;
}node[MOD+]; unsigned getHash(int*num){
unsigned sum=;
for(int i=;i<;i++)
sum=(sum+num[i])%MOD;
return sum%MODhttps:
}
void insertHash(int*num,unsigned key){
for(int i=;i<;i++)node[cur].num[i]=num[i];
node[cur].next=HashTable[key];
HashTable[key]=cur;
cur++;
}
bool cmp(int*num1,int*num2){
for(int i=;i<;i++){
if(num1[i]!=num2[i])return ;
}
return ;
}
bool searchHash(int*num){
unsigned key=getHash(num);
int next=HashTable[key];
while(next!=-){
if(cmp(num,node[next].num))return ;
next=node[next].next;
}
//insertHash(num,key);//不能边查边插,否则会自己匹配自己
return ;
}
int main(){
int n;
int num[][];
bool flag=;
cur=;
memset(HashTable,-,sizeof(HashTable));
scanf("%d",&n);
while(n--){
for(int i=;i<;i++){
scanf("%d",&num[][i]);
num[][i+]=num[][i];
}
if(flag)continue;
for(int i=;i<;i++){
num[][i+]=num[][i]=num[][-i];
}
for(int i=;i<;i++){
if(searchHash(num[]+i)||searchHash(num[]+i)){
flag=;
// cout<<111<<endl;
break;
}
}
for(int i=;i<;i++){//这里改成了之后插入
insertHash(num[]+i,getHash(num[]+i));
insertHash(num[]+i,getHash(num[]+i));
}
}
if(flag)printf("Twin snowflakes found.\n");
else printf("No two snowflakes are alike.\n"); return ;
}
Snowflake Snow Snowflakes POJ - 3349 Hash的更多相关文章
- Snowflake Snow Snowflakes - poj 3349 (hash函数)
判断n朵雪花中,是否有完全一样的雪花.简单的hash,将雪花的六个边的权值加起来,记为sum,将sum相等的雪花归为一类,再在这里面根据题意找完全相同的,判断顺时针或者逆时针的所有角是否一模一样. # ...
- Snowflake Snow Snowflakes POJ - 3349(hash)
You may have heard that no two snowflakes are alike. Your task is to write a program to determine wh ...
- POJ--3349 Snowflake Snow Snowflakes(数字hash)
链接:Snowflake Snow Snowflakes 判断所有的雪花里面有没有相同的 每次把雪花每个角的值进行相加和相乘 之后hash #include<iostream> #incl ...
- 【POJ3349 Snowflake Snow Snowflakes】【Hash表】
最近在对照省选知识点自己的技能树 今天是Hash 题面 大概是给定有n个6元序列 定义两个序列相等 当两个序列各自从某一个元素开始顺时针或者逆时针旋转排列能得到两个相同的序列 求这n个6元序列中是否有 ...
- POJ 3349:Snowflake Snow Snowflakes(数的Hash)
http://poj.org/problem?id=3349 Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K T ...
- POJ 3349 Snowflake Snow Snowflakes (Hash)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 48646 Accep ...
- 哈希—— POJ 3349 Snowflake Snow Snowflakes
相应POJ题目:点击打开链接 Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions ...
- POJ 3349 Snowflake Snow Snowflakes(简单哈希)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 39324 Accep ...
- POJ 3349 Snowflake Snow Snowflakes
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27598 Accepted: ...
随机推荐
- 常见的web攻击手段总结
xxs攻击(跨站脚本攻击) 攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时脚本程序便在浏览器上执行,盗取客户端的cookie.用户名密码.下载执行病毒木马程 序 解决: 我们可以对用户输入的数据进 ...
- GitHub上README.md编写教程(基本语法)
一.标题写法: 第一种方法: 1.在文本下面加上 等于号 = ,那么上方的文本就变成了大标题.等于号的个数无限制,但一定要大于0个哦.. 2.在文本下面加上 下划线 - ,那么上方的文本就变成了中标题 ...
- pycharm 中 import requests 报错
一 , 使用Pycharm来抓取网页的时候,要导入requests模块,但是在pycharm中 import requests 报错. 原因: python中还没有安装requests库 解决办法: ...
- MySQL数据类型--日期和时间类型
MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...
- Podfile语法参考(译)
https://www.jianshu.com/p/8af475c4f717 2015.10.30 19:14* 字数 2496 阅读 35976评论 9喜欢 120 本文翻译自官方的Podfile ...
- jmeter之批量修改请求路径
今天工作时碰到一个问题:测试环境中由于tomcat没指定webapps下的文件夹名,导致tomcat使用了webapps下默认的文件夹名,而我的jmeter脚本都已经做出来了,一共83个接口,挨个改路 ...
- Jmeter操作之跨线程组传递参数
思路:将某一线程组内的变量通过“__setProperty”函数设置成jmeter的全局变量,在另一线程组中通过“__P”函数调用即可. 1.添加-后置处理器-BeanShell PostProces ...
- 学习bootstrap3
官方手册(英文):http://getbootstrap.com/docs/3.3/getting-started/ 中文文档:https://v3.bootcss.com/getting-start ...
- Linux系统tree工具
当用户在linux平台中需要需要查看一个非当前目录的目录下有哪些文件和子文件时,最普通的办法就是cd该目录,然后再ls,这个操作令人不舒适,因为查看完以后,用户还需要切换到原来的目录.现在介绍一款非常 ...
- 查找文献的BibTex
BibTex可以通过Google Scholar来查找. 注意,默认情况下,Google scholar 关闭了显示BibTex链接. 打开Google Scholar 选择右上角菜单按钮 选择set ...