E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
poj2002
POJ2002
已知所给点,求正方形个数1.开始思路是根据任意两点作为正方形一条边,算出第三点,组成直角三角形,再算出第四点组成正方形,数学功底差,计算坐标时用到距离相等,垂直,运算十分复杂。在网上搜了搜找出了已知两点,计算正方形另外两点的计算方法,只需要简单的加减运算。已知:(x1,y1)(x2,y2)则:x3=x1+(y1-y2)y3=y1-(x1-x2)x4=x2+(y1-y2)y4=y2-(x1-x2)或
yuhaozi001
·
2020-07-06 11:01
poj
poj2002
题意:给出一些平面上点的坐标,用其中的点做顶点,求其中能组成正方形的个数。分析:每次枚举两个点,用hash看另外两个点存不存在。ViewCode#include#include#include#includeusingnamespacestd;#definemaxn1005structXPoint{intx,y;}point[maxn];structHash{XPointp;Hash*next;}
Joe?
·
2020-07-06 01:50
poj2002
Squares
//题意:给一个t表示多组输入,每次输入一个坐标,x,y,问这些坐标功能组成多少个正方形。//思路:将四个顶点枚举会超时,所以任意枚举两个点将另两个点算出来判断是否在自己创建的hash表里即可。那么按照什么规则枚举呢,如下图:这是我手动画的一个图,x1,x2也就是枚举已知的点,当然y1,y2与之对应没在途中写出来。那么我们只以至两个点为边不以这两个点为对角线。其实很好想我们将所有的两个点都枚举一次
small__snail__5
·
2020-07-05 12:46
枚举
二分查找&hash查找
poj2002
数正方形 hash
直接上渣代码了#includeusingnamespacestd;structgtype{intx,y,next;}g[3000];intfirst[1000100],tot,n,x[3010],y[3010],ans,h,tx,ty;inthash(intx,inty){return(40000*x+y+800040000)%999991+1;}boolfind(intx,inty){inth=
琴空
·
2020-07-04 21:36
POJ
[POJ 2002]Squares[二分][数学]
题目链接:[
POJ2002
]Squares[二分][数学]题意分析:平面中有n个点,求这些点能组成多少个正方形?解题思路:最多1e3个点,四个点枚举肯定超时,必须控制在两个点以内。那么两个点可行吗?
CatGlory
·
2016-02-03 21:00
正方形
POJ3432-Count Squares
转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1304781008
POJ2002
的山寨题,把数据规模从2002的 n=1000修改为
·
2015-11-13 09:27
count
[
POJ2002
Squares]
[题目来源]:
POJ2002
[关键字]:Hash (二分) [题目大意]:给出n个点,求它们共组成了多少个正方形。
·
2015-11-13 02:55
poj
poj2002
poj3432 正方形个数 (hash,二分)
给出一堆点,求其中正方形的个数。 题目很简单,如果枚举,复杂度为O(n^4),肯定超时,我们利用hash,或者二分来降低复杂度,枚举其中的两个点,然后利用正方形的性质求出其余的两个点,然后判断这两个点是否都存在,如果存在,说明可以组成一个正方形。判断的方式利用hash或者二分都可以,这个题目用的hash,poj3432用的二分。下面的问题就是给出两个点,如何求出其余的两个顶点。 给出两个点(a
·
2015-11-12 16:24
hash
poj2002
题意:给出一些平面上点的坐标,用其中的点做顶点,求其中能组成正方形的个数。 分析:每次枚举两个点,用hash看另外两个点存不存在。 View Code #include < iostream > #include < cstdio > #include < cstdlib > #include < cstring >
·
2015-11-07 12:25
poj
poj2002
简单哈希表的运用
Squares 题意:给定n个相异整数点,求能构成多少个正方形。 其实这题挺简单的,经过思考可以发现,我们可以通过枚举两个点(或者说一条边),然后求出可能构成正方形的另外两个点,然后判断是不是在给你的点集中就行了。求点问题是一个数学问题,判断要用到hash表。本来很简单的问题,由于对数学的菜,所以是2Y,第一次WA了,主要原因是在构造四边形的时候出问题了。 我对这个问题做了分析,在本题
·
2015-11-02 11:16
poj
POJ2002
二分查找&哈希
问题重述: 给定整数n,以及n个点的坐标xi, yi。求这n个点可以组成的正方形的数目(每个点可重复使用)。 分析: 根据正方形的性质,给定两个点就能确定可能构成的两个正方形的另外两个顶点。因此,只需要遍历所有点中的两个顶点,计算出可构成正方形的另外两个顶点的坐标,再在已知点中查找这两个点是否存在即可算出正方形数目。 AC代码: 1 #include <iostream>
·
2015-10-31 12:02
二分查找
poj2002
Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 9185 Accepted: 3224 Description A square is a 4-sided polygon whose sides have equal length and
·
2015-10-31 10:11
poj
Poj2002
Squares
题意描述:有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少。相同的四个点,不同顺序构成的正方形视为同一正方形。 思路变迁: 1、最简单的方法,直接暴力搜索,即依次取四个顶点,根据其坐标判断是否能组成正方形。组成正方形的条件是四个顶点可组成的六条边里面,有四条相等,剩下两条相等。当然由于其时间复杂度为O(n^4),所以提交结果为TLE 2、考虑降低时间复杂度。如任取三个顶点,根
·
2015-10-31 10:56
poj
Hash
poj2002
Squares
仿照之前的雪花,Hash函数随便搞个。 #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include <stack> #include <queue> #
·
2015-10-31 09:10
hash
poj2002
哈希
SquaresTimeLimit:3500MS MemoryLimit:65536KTotalSubmissions:17666 Accepted:6735DescriptionAsquareisa4-sidedpolygonwhosesideshaveequallengthandadjacentsidesform90-degreeangles.Itisalsoapolygonsuchthatro
became_a_wolf
·
2015-08-21 21:00
POJ2002
Squares(二维点哈希)
题目链接:http://poj.org/problem?id=2002题意:给定n个点判断这n个点可以构成多少正方形。分析:暴力枚举一条边的两个端点,然后根据全等三角形可以求出可以构成正方形的另外两个边的端点,然后判断这两个两存不存在。因此首先要把所有的点哈希一下,然后依次暴力枚举,因此四条边都统计了一次因此最后要除4.代码如下:#include #include #include #includ
u013790563
·
2015-03-17 20:00
POJ2002
:Squares
DescriptionAsquareisa4-sidedpolygonwhosesideshaveequallengthandadjacentsidesform90-degreeangles.Itisalsoapolygonsuchthatrotatingaboutitscentreby90degreesgivesthesamepolygon.Itisnottheonlypolygonwithth
libin56842
·
2014-08-17 14:00
poj
poj2002
Squares
这是题目:2:正方形查看提交统计提问总时间限制:3500ms内存限制:65536kB描述给定直角坐标系中的若干整点,请寻找可以由这些点组成的正方形,并统计它们的个数。输入包括多组数据,每组数据的第一行是整点的个数n(1 #include usingnamespacestd; #defineMAXP1005 #definePRIME21911//随便选的一个质数。 #defineOUTOFRANG
mach7
·
2014-04-02 16:00
hash
检索
哈希表
Squares
poj2002
哈希表的使用
article/details/4088436 各种字符串Hash函数比较: http://www.byvoid.com/blog/string-hash-compare/
POJ2002
willsunforjava
·
2013-03-16 09:00
哈希表
poj2002
已经正方形的两个点,那么其余两个点的可能坐标是:已知:(x1,y1) (x2,y2)则: x3=x1+(y1-y2) y3=y1-(x1-x2)x4=x2+(y1-y2) y4=y2-(x1-x2)或x3=x1-(y1-y2) y3=y1+(x1-x2)x4=x2-(y1-y2) y4=y2+(x1-x2)将所有点散列到一个hash表里面,然后查找其余两个点是否存在。采用的hash函数为
xcszbdnl
·
2013-02-04 12:00
POJ2002
正方形的个数(二维点的哈希)
给定N个点,求出这些点一共可以构成多少个正方形。若正方形为ABCD,A坐标为(x1,y1),B坐标为(x2,y2),则很容易可以推出C和D的坐标。对于特定的A和B坐标,C和D可以在线段AB的左边或者右边,即有两种情况。因此只需要枚举点A和点B,然后计算出两种对应的C和D的坐标,判断是否存在即可。这样计算完之后得到的答案是正确答案的4倍,因为正方形的4条边都枚举了,所以答案要右移两位。#includ
alongela
·
2012-12-01 23:00
POJ2002
第一次与map亲密接触
题目大意:呜呜~~我承认~~字符串的题目陷阱很多~~~Exactlysevenofthecharactersinthestringwillbedigitsorletters~~说明给的每个串的里面有意义的字符是确切的7个,但是不排除有其余的字符。另外,scanf是无法输入string的,因为c++不能兼容C~~另外按个来的话,string是可以赋值给char的,但是整串是不允许的,但是char是可
kg_second
·
2012-10-09 17:00
POJ2002
题目大意:给出散点,求构成正方形的个数有多少?思路:给出的是散点,通过2个点来枚举,但是通过公式求得的点 如果是通过线性查找来验证肯定是超时的,因为执行10^9次(O(N^3)),所以要考虑哈希表和二分查找//MemoryTime//652K 1438MS#includeusingnamespacestd;constintprime=1999; //长度为2n区间的最大素数(本题n=1000)
kg_second
·
2012-08-19 21:00
POJ2002
Squares(hash)
给出N个点,问这些点能组成多少个正方形,N小于1000,显然的,思路是,先确定正方形的两个顶点,然后在点集中查找另外两个顶点至于查找,有两种做法,一个是二分,一个是hash,很明显,hash要快一些Node1:二分1157ms,具体见代码#include #include #include usingnamespacestd; structnode { intx,y; }p[1001]; boo
l04205613
·
2012-05-28 11:00
struct
null
search
ini
insert
poj2002
数正方形 hash
直接上渣代码了#include usingnamespacestd; structgtype{ intx,y,next; }g[3000]; intfirst[1000100],tot,n,x[3010],y[3010],ans,h,tx,ty; inthash(intx,inty){ return(40000*x+y+800040000)%999991+1; } boolfind(intx,in
lencle
·
2012-03-04 10:00
poj2002
Squares 解题报告
SquaresTimeLimit:3500MSMemoryLimit:65536KTotalSubmissions:9869Accepted:3518DescriptionAsquareisa4-sidedpolygonwhosesideshaveequallengthandadjacentsidesform90-degreeangles.Itisalsoapolygonsuchthatrotat
Anlibraly
·
2011-08-10 18:38
ACMer
POJ3432-Count Squares
解题思路参看
POJ2002
:http://blog.csdn.net/lyy289065406/article
lyy289065406
·
2011-07-30 22:00
Class
insert
ZOJ2347 Squares (
POJ2002
二分查找)
给N个点,任意取其中4个,是否能构成正方形,能的话算一组,求有多少组这样的点,也就是说最多可以找出多少个正方形方法很简单,确定两个点,必然可以求出正方形的另外两个点,在点集中查找,另外两个点是否存在就可以了。用二分查找,中间加上剪枝,时间可以压到1s一下,但是那些100ms+的神人是怎么做到的,就不得而知了……无限Orz……PS:ZOJ和POJ输入输出格式不太一样,注意啊,好坑爹的……递归版二分查
l04205613
·
2011-07-19 19:00
c
struct
search
ini
poj2002
——Squares
题意:n个坐标,问能组成多少正方形。 思路:先按x轴优先排序,然后枚举每两个点是否能组成正方形。涉及到坐标的旋转及简单hash操作。 x'=xcos(a)-ysin(a); y'=xsin(a)+ycos(a). #include<iostream> #include<cstring> #include<cstdio> #include<algori
44424742
·
2011-04-22 22:00
J#
pku上的数据结构题
(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)(poj3349,poj3274,POJ2151,poj1840,
poj2002
,poj2503)(5)哈夫曼树(
kenby
·
2010-12-09 19:00
数据结构
算法
POJ 2002
POJ2002
在一个坐标内给出至多1000个不同的点,要求可以形成正方形的个数。
The Way of C++
·
2010-03-14 14:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他