Squares - poj 2002(hash)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node{
int x,y;
} point[]; struct hash{
int pos;
hash* next;
} hashtable[];
int find(int x,int y){ hash* t;
int tmp=(x*x+y*y)%;
t=&hashtable[tmp];
if(t->pos==){
return ;
}else{
int pos=t->pos;
if(point[pos].x==x&&point[pos].y==y)
return ;
}
while(t->next){
t=t->next;
int pos=t->pos;
if(point[pos].x==x&&point[pos].y==y)
return ;
}
return ;
}
int N;
int main() {
scanf("%d",&N);
int i,j;
while(N){
memset(hashtable,,sizeof(hashtable));
memset(point,,sizeof(point));
for(i=;i<=N;i++){
int x,y;
scanf("%d %d",&x,&y);
point[i].x=x;
point[i].y=y;
int t=(x*x+y*y)%;
if(hashtable[t].pos==){
hashtable[t].pos=i;
}else{
hash* tmp=(hash*)malloc(sizeof(hash));
tmp->next=;
tmp->pos=i;
tmp->next=hashtable[t].next;
hashtable[t].next=tmp;
}
}
int result=;
for(i=;i<=N;i++){
for(j=i+;j<=N;j++){
int x1=point[i].x+(point[j].y-point[i].y);
int y1=point[i].y-(point[j].x-point[i].x);
int x2=point[j].x-(point[i].y-point[j].y);
int y2=point[j].y+(point[i].x-point[j].x);
if(find(x1,y1)&&find(x2,y2))
result++;
}
}
for(i=;i<=N;i++){
for(j=i+;j<=N;j++){
int x1=point[i].x-(point[j].y-point[i].y);
int y1=point[i].y+(point[j].x-point[i].x);
int x2=point[j].x+(point[i].y-point[j].y);
int y2=point[j].y-(point[i].x-point[j].x);
if(find(x1,y1)&&find(x2,y2))
result++;
}
}
printf("%d\n",result/);
scanf("%d",&N);
} return ;
}
| Time Limit: 3500MS | Memory Limit: 65536K | |
| Total Submissions: 17553 | Accepted: 6677 |
Description
So we all know what a square looks like, but can we find all possible squares that can be formed from a set of stars in a night sky? To make the problem easier, we will assume that the night sky is a 2-dimensional plane, and each star is specified by its x and y coordinates.
Input
Output
Sample Input
4
1 0
0 1
1 1
0 0
9
0 0
1 0
2 0
0 2
1 2
2 2
0 1
1 1
2 1
4
-2 5
3 7
0 0
5 2
0
Sample Output
1
6
1
Squares - poj 2002(hash)的更多相关文章
- POJ 2002 Squares 数学 + 必须hash
http://poj.org/problem?id=2002 只能说hash比二分快很多.随便一个hash函数都可以完爆二分. 判断是否存在正方形思路如下: 1.枚举任意两个点,作为正方形的一条边,那 ...
- POJ 2002 Squares [hash]
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 16631 Accepted: 6328 Descript ...
- POJ 2002 统计正方形 HASH
题目链接:http://poj.org/problem?id=2002 题意:给定n个点,问有多少种方法可以组成正方形. 思路:我们可以根据两个点求出对应正方形[有2个一个在两点左边,一个在两点右边] ...
- POJ 2002 Squares 哈希
题目链接: http://poj.org/problem?id=2002 #include <stdio.h> #include <string.h> ; struct Has ...
- POJ 2002 Squares 解题报告(哈希 开放寻址 & 链式)
经典好题. 题意是要我们找出所有的正方形.1000点,只有枚举咯. 如图,如果我们知道了正方形A,B的坐标,便可以推测出C,D两点的坐标.反之,遍历所有点作为A,B点,看C,D点是否存在.存在的话正方 ...
- POJ 2002 点hash
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 15489 Accepted: 5864 Descript ...
- POJ 2002 Squares 几何, 水题 难度: 0
题目 http://poj.org/problem?id=2002 题意 已知平面内有1000个点,所有点的坐标量级小于20000,求这些点能组成多少个不同的正方形. 思路 如图,将坐标按照升序排列后 ...
- poj 2002 Squares 几何二分 || 哈希
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 15137 Accepted: 5749 Descript ...
- poj 2002(好题 链式hash+已知正方形两点求另外两点)
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 18493 Accepted: 7124 Descript ...
随机推荐
- SQL Server datetime数据类型设计、优化误区
一.场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢? (图1:数据列 ...
- (转)Scala的“=>”符号简介
Scala中的=>符号可以看做是创建函数实例的语法糖.例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T.请看下面这个实例: scal ...
- 转:Android 签名验证机制(相当不错,强烈推荐)
转: http://riusksk.blogbus.com/logs/272154406.html Android应用签名验证过程中,满足以下条件才能安装应用: 1.SHA-1(除META-INF目 ...
- Node.js 4493图片批量下载爬虫1.00
这个爬虫依然需要iconv转码,想不到如今非utf8的网页还这么多.另外此网页找下一页的方式比较异常,又再次借助了正则表达式. 代码如下: //============================ ...
- Net 服务命令行参考之一
转自:http://blog.sina.com.cn/s/blog_55035e9501015p05.html ----------------------------------最实用高效的网络管理 ...
- [Exception IOS 4] - could not build module 'foundation'
出现这个问题首先百度找到的是:http://www.cocoachina.com/bbs/read.php?tid=188086 然后在blog中能找到链接:http://stackoverflow. ...
- Python进阶---python strip() split()函数实战(转)
先看一个例子: >>> ipaddr = 10.122.19.10 File "", line 1 ipaddr = 10.122.19.10 ^ SyntaxE ...
- js设置加载进度提示
CreateTime--2017年8月23日09:17:46Author:Marydon js设置加载进度提示 第一部分:CSS /*加载样式*/ .Loading { position: abs ...
- JBoss jar包冲突及jar加载顺序
http://blog.163.com/javaee_chen/blog/static/17919507720116149511489/将一个完整的.war包部署到Jboss容器中,启动后报如下错误: ...
- canvas学习笔记(上篇)-- canvas入门教程 -- canvas标签/方块/描边/路径/圆形/曲线
[上篇] -- 建议学习时间4小时 课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...