Snowflake Snow Snowflakes(查找)
http://poj.org/problem?id=3349
题意:给出n组数据,每组数据有六个数,这n组数据中若有两组数据不管是从某个数顺时针读还是逆时针读都相同,输出“Twin snowflakes found.”,否则,输出
"No two snowflakes are alike."
思路:将每组数据求和对大素数取余,将sum相同的放在同一个邻接表中,然后从邻接表中查找符合条件的数据。
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std; const int p=;
const int N=;
int arr[N][];
struct node
{
int sum;
int id;
};
vector<node>v[N];//将每组数据的sum相同放在v[sum]邻接表里; int s_ee(int n,int m)//顺时针查找
{
int i,j;
for (i = ; i < ; i ++)
{
if(arr[n][i]==arr[m][])
{
for (j = ; j < ; j ++)
{
if (arr[n][(i+j)%]!=arr[m][j])
break;
}
if (j >= )
return ;
}
}
return ;
}
int ee_s(int n,int m)//逆时针查找
{
int i,j;
for (i = ; i < ; i ++)
{
if (arr[n][i]==arr[m][])
{
for (j = ; j < ; j ++)
{
if (arr[n][(i+j)%]!=arr[m][-j])
break;
}
if (j >= )
return ;
}
}
return ;
}
int main()
{
int n,flag = ,sum ;
scanf("%d",&n);
for (int i = ; i <= N; i ++)
v[i].clear();//初始化vector
for (int i = ; i < n; i ++)
{
sum = ;
for (int j = ; j < ; j ++)
{
scanf("%d",&arr[i][j]);
sum += arr[i][j];
}
int t = sum%p;
if (!flag)//没有找到相同的两组
{
for (int j = ; j < v[t].size(); j ++)
{
if ((s_ee(v[t][j].id,i))||ee_s(v[t][j].id,i))
{
flag = ;
break;
}
}
if (!flag)
{
v[t].push_back((node){sum,i});//放到邻接表里
}
}
}
if (flag)
printf("Twin snowflakes found.\n");
else
printf("No two snowflakes are alike.\n");
return ;
}
Snowflake Snow Snowflakes(查找)的更多相关文章
- poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30529 Accep ...
- [ACM] POJ 3349 Snowflake Snow Snowflakes(哈希查找,链式解决冲突)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30512 Accep ...
- POJ 3349 Snowflake Snow Snowflakes(简单哈希)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 39324 Accep ...
- Snowflake Snow Snowflakes(哈希表的应用)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27312 Accep ...
- POJ 3349 Snowflake Snow Snowflakes
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 27598 Accepted: ...
- POJ 3349:Snowflake Snow Snowflakes(数的Hash)
http://poj.org/problem?id=3349 Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K T ...
- 哈希-Snowflake Snow Snowflakes 分类: POJ 哈希 2015-08-06 20:53 2人阅读 评论(0) 收藏
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 34762 Accepted: ...
- [poj3349]Snowflake Snow Snowflakes(hash)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 37615 Accepted: ...
- POJ--3349 Snowflake Snow Snowflakes(数字hash)
链接:Snowflake Snow Snowflakes 判断所有的雪花里面有没有相同的 每次把雪花每个角的值进行相加和相乘 之后hash #include<iostream> #incl ...
随机推荐
- HDU_1113_字符串处理
Word Amalgamation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- mybatis 项目配置
第一:environments MyBatis 支持多个环境,可以任意配置: 第二:transactionManager MyBatis 支持两种类型的事务管理器:JDBC 和 MANAGED(托管) ...
- / Vijos / 题库 / 1622 / 文件查找(HOI)
/ Vijos / 题库 /1622/文件查找(HOI) 描述 WINDOWS是一个很庞大的操作系统(当然啦,看占的硬盘空间就知道了),比如说,它的文件查找系统.现在,请你用PASCAL或者C或者C+ ...
- (C/C++学习)13.C语言字符串处理函数(一)
说明:字符串处理的函数很多,本文将例举经常遇到的一些函数加以说明. 一.字符串的输入输出 头文件:<stdio.h> 1.利用标准输出函数 printf() 来输出,将格式设置为 s% . ...
- HDU - 5894 Pocky(概率)
HDU5894—Pocky Problem Description: Let’s talking about something of eating a pocky. Here is a Decore ...
- uva 12108 Extraordinarily Tired Students (UVA - 12108)
算法完全转载...原博客(https://blog.csdn.net/u014800748/article/details/38407087) 题目简单叙述 题目就是一堆学生他们有清醒的时候和昏迷的时 ...
- BZOJ 1016 最小生成树计数 【模板】最小生成树计数
[题解] 对于不同的最小生成树,每种权值的边使用的数量是一定的,每种权值的边的作用是确定的 我们可以先做一遍Kruskal,求出每种权值的边的使用数量num 再对于每种权值的边,2^num搜索出合法使 ...
- docker的容器可视化工具portainer
1.搜索镜像 [root@holly ~]# docker search portainer 2.下载portainer [root@holly ~]# docker pull portainer/p ...
- mysql 数据的某个范围数据
select * from table_name where limit num1, num2; num1 : 开始条目 num2 :选择数目
- 调度器Quartz的配置文件中的线程池设置
在使用调度器Quartz来进行数据归档的时候,当我们开的定时任务很多的时候,就会出现一些定时任务不会被触发的现象,这就是线程阻塞.那到底什么叫线程阻塞呢? 线程阻塞,顾名思义就是说线程被阻塞了,没有按 ...