History: 알고리즘 대회에 필요한 기하
기하 (Geometry)
Geometry in PS
기하문제란 무엇인가?
기하문제는 왜 어려운가?
- 구현이 더럽다.
- 예외 케이스가 많다.
- 수학적인 지식을 많이 필요로 하는 경우가 있다.
기하문제를 왜 풀어야하는가?
- 남들이 못푸니까 풀면 확실히 메리트가 있다.
- 리저널 대회에서 유명한 기하 문제들이 그대로 나오는 경우들도 많다. (예를 들면 치킨집이라거나...)
- 생각보다 쉬운 기하문제들도 많다.
기하문제 분류
순수 기하문제 (수학)
- delaunay triangulation
- voronoi diagram
- boolean operations on polygons
복잡한 자료구조를 필요로 하는 기하문제
- k-d tree
해결 과정에서 기하 라이브러리가 필요한 문제
- 기하 라이브러리가 있어야 그래프를 만들 수 있는 문제
라이브러리에 있으면 좋을 것들?
기본적인 구조체
- Point
- Line (Segment)
- Circle
- Polygon
- Plane (2-d, 3-d, 구면, cylinder, cone, ...)
Basic Methods
- area, ccw
- intersection (point, line, circle, polygon 사이의..)
- boolean operations on polygons
- closest pair of points
Advanced Methods
- polygon triangulation
- delaunay triangulation
- voronoi diagram
- shortest path (with obstacles...)