PKU 3432 Count Squares
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 1331
Accepted: 552
Description
Given a set of points with integer coordinates xi, yi, i = 1...N, your program must find all the squares having each of four vertices in one of these points.
Input
Input file contains integer N followed by N pairs of integers xi yi.
Constraints
-104 ≤ xi, yi ≤ 104, 1 ≤ N ≤ 2000. All points in the input are different.
Output
Output file must contain a single integer — number of squares found.
Sample Input
Sample input 1
4 0 0 4 3 -3 4 1 7
Sample input 2
9
1 1 1 2 1 3
2 1 2 2 2 3
3 1 3 2 3 3
Sample Output
Sample output 1
1
Sample output 2
6
HintBold texts appearing in the sample sections are informative and do not form part of the actual data.
Source Northeastern Europe 2005, Far-Eastern Subregion
제목의 뜻은 매우 간단하다. 한 무리의 다른 점을 주고 이 점들을 구하면 최대 몇 개의 정사각형을 구성할 수 있다.
이 점마다 두 개의 점을 열거하여 정방행의 한 변으로 한 다음에 시계 방향/반시계 방향으로 90도 회전(상대 좌표를 이용하여 계산)하고 다른 두 개의 점의 좌표를 얻어 HASH에 이 두 점이 모두 존재한다면 cnt++를 조회한다.
마지막 cnt/4, 정사각형 하나로 4번 계산된 적 있기 때문에
for(j=0;j
if(i==j)continue;
TMP.x=P[j].y-P[i].y+P[j].x;
if(TMP)//isin에서 HASH 테이블에 점이 있는지 확인합니다
//좌표 변환, 다른 점 얻기
TMP.y+=(P[i].y-P[j].y);
cnt++;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java에서 InputStream, String, File 간의 상호 전환 비교InputStream, String, File 상호 전환 1. String --> InputStream 2. InputStream --> String 오늘 인터넷에서 또 다른 방법을 보았는데, 특별히 가지고 와서 공...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.