Codeforces Round #308(Div.2)--D(사비테마)
2204 단어 사유 문제를 넓히다.CodeForces
time limit per test
4 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output
Vanya got bored and he painted n distinct points on the plane. After that he connected all the points pairwise and saw that as a result many triangles were formed with vertices in the painted points. He asks you to count the number of the formed triangles with the non-zero area.
Input
The first line contains integer n (1 ≤ n ≤ 2000) — the number of the points painted on the plane.
Next n lines contain two integers each xi, yi ( - 100 ≤ xi, yi ≤ 100) — the coordinates of the i-th point. It is guaranteed that no two given points coincide.
Output
In the first line print an integer — the number of triangles with the non-zero area among the painted points.
Sample test(s)
input
4
0 0
1 1
2 0
2 2
output
3
input
3
0 0
1 1
2 0
output
1
input
1
1 1
output
0
Note
Note to the first sample test. There are 3 triangles formed: (0, 0) - (1, 1) - (2, 0); (0, 0) - (2, 2) - (2, 0); (1, 1) - (2, 2) - (2, 0).
Note to the second sample test. There is 1 triangle formed: (0, 0) - (1, 1) - (2, 0).
Note to the third sample test. A single point doesn't form a single triangle.
제목: n개의 점의 좌표를 주고 모든 두 점을 연결시켜 몇 개의 삼각형을 구성할 수 있는지 구한다.
처음부터 검색을 하고 싶었어요.
방법 1:
만약 x(x>2)개의 점이 일선으로 연결된 상황이 없다면 답은 C(n,3)이다.만약 x(x>2)개의 점이 일선으로 연결된 상황이 있다면 이 점들은 구성된 삼각형의 개수가 C(n,3)보다 적은 원인이다(다른 점은 영향을 주지 않는다).그래서 이 점들이 삼각형에 영향을 미치는 개수만 빼면 답이다.반면 이들 연일선점은 삼각형을 이루지 않지만, C(x, 3)를 구성할 수 있어 C(x, 3)개를 줄였다.계산이 편리하기 때문에 한 점을 매거하는 동시에 다른 점을 매거하여 이 두 점으로 구성된 사율을 기록한 다음에 정렬하여cnt개의 사율이 같다는 것을 찾아낼 수 있다.이 cnt의 경사율이 같다는 것은 그 점을 매거할 때 cnt+1개의 점이 일선으로 연결되어 있음을 나타낸다. 그러면 감소된 삼각형의 개수는 C(cnt, 2)이다.시간 복잡도는 O (n*n*logn)
방법2:
다른 사람이 쓴 것을 보고 이렇게 할 수 있다니 =, 나는 왜 ==#을 생각하지 못했을까
직접 폭력으로 세 가지를 매거한 후에 그 면적을 계산하고 0이 아니면 삼각형을 구성할 수 있다. 그렇지 않으면 안 된다.시간의 복잡도는 O(n^3)이다.cf에서 10^9의 복잡도 1sec를 모두 통과할 수 있을 것 같습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2019-2020 ICPC North-Western Russia Regional Contest[부분 문제풀이]나무 한 그루를 정하고 m개의 관건을 제시하면 이 점에서 m개의 관건까지의 거리가 같을 수 있는 점을 찾아낼 수 있다 (2) 문제는 하나의 점을 찾는 것으로 전환할 수 있다. 모든 관건점을 그 거리의 최대치로 최소화...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.