문제 링크
- http://icpc.me/11599
사용 알고리즘
- LIS
- 회전 변환
- 기하
풀이
r = 1이라고 생각해봅시다.
초록색 지점에서 이동할 수 있는 구간은 검은 선으로 표시된, 90도짜리 영역입니다.
전체 평면은 90도 돌려주면 이동할 수 있는 구간을 조금 더 편하게 나타낼 수 있습니다.
회전하는 것은 (x, y)를 (y-x, y+x)로 고쳐주면 됩니다.
회전한 평면에서, 보석을 가져갈 수 있는 체인은 x, y좌표가 모두 비감소하는 집합입니다.
x좌표와 y좌표로 정렬을 해주면, y좌표에 대한 lis를 구하는 문제로 바뀌게 됩니다.
r = 1이 아닌 경우는, 입력받은 x좌표를 r배 해주면 됩니다.
전체 코드
1 |
|